【问题标题】:Clearing *.kml files in Temporary Internet Files清除 Internet 临时文件中的 *.kml 文件
【发布时间】:2012-04-12 14:51:22
【问题描述】:

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

【问题讨论】:

    标签: c#


    【解决方案1】:

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

    编辑:我误解了你(我认为;你只是想删除一组特定的文件;而不是其他所有文件)。如果您只想删除所有 *.kml 文件,您或许可以这样做:

    • 使用 FindFirstUrlCacheEntry 和 `FindNextUrlCacheEntry) 查找缓存条目。
    • 使用DeleteUrlCacheEntry 删除您找到的条目。
    【解决方案2】:

    你试过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();
            }
    

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

    希望它会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多