例如,我有一个 20gb 的文件,我决定将它复制到“c:/folder/filename.ext”。显然,这需要一些时间才能完成。
如果在复制过程中执行,下面的返回是什么?
File.Exists("c:/folder/filename.ext");
如果在复制过程中执行,下面的返回是什么?
假设您正在运行代码的进程具有足够的权限来读取它将返回的文件(即使文件存在,如果帐户没有足够的权限来读取文件,True
请不要忘记File.Exists
返回)。False
该File.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"));
}
}
我不太确定,但我认为如果有任何文件(完整或部分复制)它会返回 true。
如果您需要复制过程的状态,您应该检查长度,或使用散列 (SHA1)。