-4

たとえば、20 GBのファイルがあり、それを「c:/folder/filename.ext」にコピーすることにしたとします。明らかに、これは完了するのに少し時間がかかります。

コピーが行われている間に実行された場合、次の結果はどうなりますか?

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

2 に答える 2

2

コピーが行われている間に実行された場合、次の結果はどうなりますか?

コードを実行しているプロセスに、ファイルを読み取るための十分な権限があると仮定すると、返されます(ファイルが存在する場合でも、アカウントにファイルを読み取るための十分な権限がない場合は、返されるTrueことを忘れないでください)。このメソッドは、ファイルが現在書き込み中か読み取り中かを気にしません。File.ExistsFalseFile.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 に答える