-4

例如,我有一个 20gb 的文件,我决定将它复制到“c:/folder/filename.ext”。显然,这需要一些时间才能完成。

如果在复制过程中执行,下面的返回是什么?

File.Exists("c:/folder/filename.ext");
4

2 回答 2

2

如果在复制过程中执行,下面的返回是什么?

假设您正在运行代码的进程具有足够的权限来读取它将返回的文件(即使文件存在,如果帐户没有足够的权限来读取文件,True请不要忘记File.Exists返回)。FalseFile.Exists方法不关心文件当前是否正在被写入或读取:

public class Program
{
    static void Main()
    {
        Task.Factory.StartNew(() =>
        {
            using (var stream = File.OpenWrite("test.dat"))
            {
                Thread.Sleep(100);
            }
        });
        Thread.Sleep(10);

        // prints True
        Console.WriteLine(File.Exists("test.dat"));
    }
}
于 2012-09-12T15:13:40.810 回答
0

我不太确定,但我认为如果有任何文件(完整或部分复制)它会返回 true。

如果您需要复制过程的状态,您应该检查长度,或使用散列 (SHA1)。

于 2012-09-12T15:15:15.500 回答