2011-06-23 12 views
7

İki web sayfam var. Birincisi: çağrıSilinen dosya hala Directory.GetFiles sonuçta göründüğünde

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

"1.xml" dosyasını silerek rağmen:

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

diğeri:

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

ben şöyle bu yöntemleri arıyorum Directory.GetFiles("*.xml"); hala sonuçlarda "1.xml" değerini döndürür. Başka bir deyişle, silinmiş gibi görünmüyor.

Ve sonra, döngü sonucu, dosyayı okumaya çalıştığınızda, FileNoFoundException

+0

Üzgünüm, dosyayı silmiştim, ancak directory.getfiles ("*. Xml") tarafından aranmıştı; – shenhengbin

+4

@Scott: Dosyayı silmeyi düşündüğünüz anlamına mı geliyorsunuz, ancak getfiles çağrıldığında silinmiş gibi görünmüyor mu? –

+0

Merhaba @Scott, sorunuzu daha net hale getirmek için düzenlemek isteyebilirsiniz. DeleteFile ("1.xml") çağrıldıktan sonra bile getAllFile() öğesinin hala "1.xml" olduğunu söylerken haklı mıyım? –

cevap

3

DirectoryInfo/FileInfo sınıflarının her zaman güncelleştirilmediğini buldum. Bu durumlarda Directory/File örneklerinde Refresh yöntemini çağırmanız gerekir.

+0

** Tam olarak ne demek istiyorsun? 'DirectoryInfo' üzerinde Refresh() 've' GetFiles() 'dan her' FileInfo' ve her 'DirectoryInfo' 'GetDirectories()' den aradım. Yine de, GetFiles.Length' silinmiş dosyalar ile sayımı döndürür. – Geri

0

Bilmiyorum olsun, ama senin webMethods'ın Sonucun yerde önbelleğe ediliyor şüpheli.

İlgili konular