清除Internet临时文件中的* .kml文件

时间:2012-04-12 14:51:23

标签: c#

我想清除Temporary Internet Files中的所有kml文件。我尝试了递归目录搜索但没有找到kml文件,尽管在使用Windows资源管理器浏览时可以看到kml文件。在“Temporary Internet Files”的实际目录中,如Content.IE5,这些kml文件存在* .xml对应项。我也删除了它们,但Windows资源管理器仍显示kml文件。 我也尝试了一些WinApi方法,但我无法编写我想要的代码。

2 个答案:

答案 0 :(得分:1)

据我所知,临时Internet文件的处理方式与回收站文件类似,即有一个包含元数据的索引文件(如文件名)和包含实际内容的文件。您可以使用GetUrlCacheEntryInfo()来获取文件信息,但我认为没有任何特定/简单的方法可以清除除特定子集之外的所有文件(不会像通过简单删除那样损坏缓存文件)文件没有更新元数据或迭代缓存中的所有文件。)

编辑:我误解了你(我想;你只想删除一组特定的文件;而不是其他所有文件)。如果您只想删除所有* .kml文件,则可以执行此操作:

  • 使用FindFirstUrlCacheEntry和`FindNextUrlCacheEntry查找缓存条目。
  • 使用DeleteUrlCacheEntry删除您找到的条目。

答案 1 :(得分: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();
        }

您还应该更新代码以删除子目录中的文件。

希望它会有所帮助。

相关问题