2012-04-12 34 views
0

我想清除臨時Internet文件中的所有kml文件。我嘗試了遞歸目錄搜索,但沒有找到kml文件,儘管您可以在使用Windows資源管理器瀏覽時看到kml文件。在「Internet臨時文件」的實際目錄中,如Content.IE5,這些kml文件存在* .xml對應文件。我也刪除了它們,但Windows資源管理器仍然顯示kml文件。 我也嘗試了一些WinApi方法,但我無法寫出我想要的代碼。清除臨時Internet文件中的* .kml文件

回答

1

據我所知臨時Internet文件處理類似於回收站文件,即有一個與元數據(如文件名)索引文件和包含實際內容的文件。您可能可以使用GetUrlCacheEntryInfo()來獲取文件信息,但我認爲沒有任何特定/簡單的方法可以清除除特定子集以外的所有文件(而不會像通過簡單地刪除文件而不更新元數據那樣損壞緩存文件數據或迭代緩存中的所有文件)。

編輯:我誤解了你(我想;你只是想刪除一組特定的文件;而不是其他所有的東西)。如果您想只刪除所有* .KML文件,你也許可以做到這一點:

  • 找到緩存條目與FindFirstUrlCacheEntry和`FindNextUrlCacheEntry)。
  • 使用DeleteUrlCacheEntry刪除您找到的條目。
+0

感謝您的回答,我使用了[http://social.msdn.microsoft.com/Forums/en/netfxnetcom/thread/b5721e4f-6b58-465e-82eb-629613c7de4a](http://social .msdn.microsoft.com /論壇/ EN/netfxnetcom /線程/ b5721e4f-6b58-465e-82eb-629613c7de4a) – 2012-04-13 07:50:58

0

你試過Environment.SpecialFolder.InternetCache路徑

 string tempPath = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache); 

     System.IO.DirectoryInfo tempDir = new DirectoryInfo(tempPath); 
     foreach (FileInfo file in tempDir.GetFiles("*.kml")) 
     { 
      file.Delete(); 
     } 

你也應該更新代碼子目錄中刪除的文件。

希望這會有所幫助。