ファイルを移動していますが、FileInfo.Existsが実際には動作しないことに気付きました。以下の例では、ファイルを "foo"から "bar"に移動した後、FileInfo
オブジェクトはどちらもExist
と思われます。他の試合では、私は両方の存在が間違っているのを見ました。FileInfo.MoveToはFileInfo.Existsを更新しません
using System.IO;//File, FileInfo
public static void TestMoveTo()
{
// create file 1
string FileName = @"d:\temp\foo.txt";
File.WriteAllText(FileName, "Test file\n");
FileInfo FI_Test = new FileInfo(FileName);
// move to file 2
string NewFileName = @"d:\temp\bar.txt";
if (File.Exists(NewFileName))
File.Delete(NewFileName);
FileInfo FI_New = new FileInfo(NewFileName);
FI_Test.MoveTo(FI_New.FullName);
// test
bool OldExists = FI_Test.Exists;
bool NewExists = FI_New.Exists;
// use File.Exists
bool OldExists2 = File.Exists(FileName);
bool NewExists2 = File.Exists(NewFileName);
return;//debug breakpoint
}
flush
への道は、ファイルシステムあり、またはupdate
のFileInfoオブジェクト?
File.Exists
メソッドを使用すると、移動後にファイルシステムを調べるので、不思議ではありません。
これは、ファイルシステムを変更した後に、関連するFileInfo
オブジェクトが単純に無効であることを意味しますか?
[documentation](https://msdn.microsoft.com/en-us/library/system.io.fileinfo.exists%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396)を参照してください。 :_最初に呼び出されたとき、FileInfoはRefreshを呼び出し、ファイルに関する情報をキャッシュします。その後の呼び出しでは、情報の最新コピーを取得するために更新を呼び出す必要があります._ – Default
@Default Great!どういうわけか私はその電話を見つけられませんでした。あなたが最初だったように、私があなたの答えを選ぶなら、あなたの答えを選ぶでしょう。 – Roland
ありがとうございますが、それは大丈夫です。与えられた答えは私が作ったよりも詳細です:) – Default