2011-06-23 21 views
7

私は2つのWebメソッドを持っています。最初は次のとおりです、コール削除されたファイルはDirectory.GetFilesの結果に表示されます

deleteFile("1.xml") 
getAllFile(); 

"1.xml" ファイルを削除するにもかかわらず:

void deleteFile(string filePath) 
{ 
    File.Delete(filePath); 
} 

他は次のとおりです。

string[] getAllFile() 
{ 
    // at the same folder.... 
    Directory.GetFiles("*.xml"); 
    ..... 
    return .... 
} 

私はそうのようなこれらのメソッドを呼んでいますDirectory.GetFiles("*.xml");には、結果に「1.xml」が返されます。つまり、削除されていないようです。

そして、私はループの結果は、ファイルを読み込むしようとすると、FileNoFoundException

+0

私はファイルを削除したことを意味しますが、directory.getfiles( "*。xml")によって検索されました。 – shenhengbin

+4

@Scott:ファイルを削除しようとしましたが、getfilesを呼び出したときに削除されていないようですか? –

+0

こんにちは@Scott、質問を編集してより明確にすることができます。私はあなたがdeleteFile( "1.xml")を呼び出した後でさえ、getAllFile()が "1.xml"を見つけていると言っているのでしょうか? –

答えて

3

DirectoryInfo/FileInfoクラスが必ずしも更新されないことがわかりました。これらのインスタンスでは、Directory/FileインスタンスでRefreshメソッドを呼び出す必要があります。

+0

** **正確にはどういう意味ですか?私は 'DirectoryInfo'自体と' GetFiles() 'の各' FileInfo'と 'GetDirectories()'の各 'DirectoryInfo'に' Refresh() 'を呼び出しました。それでも、 'GetFiles.Length'は、削除されたファイルの数を返します。 – Geri

0

私は知らないを得るが、私はあなたのwebMethodsの結果はどこかにキャッシュされている疑いがあります。

関連する問題