2011-06-23 66 views
7

我有兩個webmethods。第一個是:刪除的文件仍然出現在Directory.GetFiles結果

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

另一種是:

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

我調用這些方法,像這樣:

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

儘管刪除 「1.XML」 文件,調用到Directory.GetFiles("*.xml");仍然返回結果中的「1.xml」。換句話說,它似乎沒有被刪除。

然後,當我循環的結果,嘗試讀取這個文件,得到FileNoFoundException

+0

即時對不起,我的意思是,我刪除了該文件,但它已被search.getfiles(「*。xml」)搜索; – shenhengbin

+4

@Scott:你的意思是你打算刪除這個文件,但是當你調用getfiles時它並沒有被刪除? – 2011-06-23 14:18:32

+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的這一結果被緩存的地方。

相關問題