【发布时间】:2015-03-20 08:21:26
【问题描述】:
编辑(2015 年 1 月 24 日)注意: 在试图弄清楚为什么这不起作用时,在此处提问之前,我了解到 Temporary Internet Files 目录实际上是一个虚拟的windows管理的目录。如果您使用 7zip 之类的程序来浏览您的 Temporary Internet Files 目录,您将看到实际的文件系统。
我的目标是删除 Windows 临时 Internet 文件。我用7zip查看了目录结构
C:\User\User\AppData\Local\Microsoft\Windows\Temporary Internet Files
看到有 3 个目录:Content.IE5、Low 和 Virtualized。
通过查看这些目录,我认为我应该只删除 Content.IE5 和 Low 的内容。然后我用了
string path = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache);
string path1 = path + "\\Content.IE5\\";
string path2 = path + "\\Low\\";
使用 foreach 删除这两个目录的所有文件和子目录。
通过查看 7zip,我能够验证目录和文件是否已删除,但是当我转到
C:\Users\User\AppData\Local\Microsoft\Windows\Temporary Internet Files
没有被删除。如何删除可以在 Windows 资源管理器中查看的文件?
编辑(01/23/2015):这是我的代码。如果有人可以提供帮助,我将不胜感激,因为我不知道还能做什么,因为它正在删除我可以使用 7zip 看到的文件和文件夹,但它不会删除虚拟目录中看到的内容。
Dictionary<string,DirectoryInfo> directories = new Dictionary<string,DirectoryInfo>() {
{"Temporary Internet Files", new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache))}
};
DirectoryInfo dInfoTempIntFilesCont = new DirectoryInfo(directories["Temporary Internet Files"] + "\\Content.IE5\\");
DirectoryInfo dInfoTempIntFilesLow = new DirectoryInfo(directories["Temporary Internet Files"] + "\\Low\\");
FileInfo[] fInfoTempIntFiles = directories["Temporary Internet Files"].GetFiles();
DirectoryInfo[] fInfoTempIntFilesCont = dInfoTempIntFilesCont.GetDirectories();
DirectoryInfo[] fInfoTempIntFilesLow = dInfoTempIntFilesLow.GetDirectories();
try
{
foreach (var file in fInfoTempIntFiles)
{
try
{
file.Delete();
}
catch (Exception)
{
}
}
foreach (var subDirectory in fInfoTempIntFilesCont)
{
try
{
subDirectory.Delete(true);
}
catch (Exception)
{
}
}
foreach (var subDirectory in fInfoTempIntFilesLow)
{
try
{
subDirectory.Delete(true);
}
catch (Exception)
{
}
}
编辑(2015 年 1 月 24 日):这是环境路径正确的证明以及 GetFiles 对它的结果。
【问题讨论】:
标签: c# winforms windows-7 filesystems