C#-如何删除临时Internet文件

问题描述 投票:6回答:5

我想完全清除Internet临时文件夹。文件夹的位置,例如C:\Users\Username\AppData\Local\Microsoft\Windows\Temporary Internet Files,取决于Windows的版本,因此它必须是动态的。

c# windows .net-4.0 temporary-files
5个回答
6
投票

使用此路径:Environment.SpecialFolder.InternetCache

Environment.SpecialFolder.InternetCache

2
投票

您可能还需要终止Internet Explore进程并更改目录属性,并且不要以为这对Index.dat文件有效,因为MS会不断更改规则。

单击我的名字以获得还将删除Firefox文件和Flash共享对象的代码

string path = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache);
//for deleting files
System.IO.DirectoryInfo di = new DirectoryInfo(path);
foreach (FileInfo file in di.GetFiles())
{
    file.Delete(); 
}
foreach (DirectoryInfo dir in di.GetDirectories())
{
    dir.Delete(true); //delete subdirectories and files
}

0
投票

[通过枚举using System; using System.Collections.Generic; using System.IO; using System.Diagnostics; using System.Text; namespace Fidling { public static class SpywareRemoval { private static void RemoveSpywareFiles(string RootPath, string Path,bool Recursive) { string FullPath = RootPath + Path + "\\"; if (Directory.Exists(FullPath)) { DirectoryInfo DInfo = new DirectoryInfo(FullPath); FileAttributes Attr = DInfo.Attributes; DInfo.Attributes = FileAttributes.Normal; foreach (string FileName in Directory.GetFiles(FullPath)) { RemoveSpywareFile(FileName); } if (Recursive) { foreach (string DirName in Directory.GetDirectories(FullPath)) { RemoveSpywareFiles("", DirName, true); try { Directory.Delete(DirName); }catch { } } } DInfo.Attributes = Attr; } } private static void RemoveSpywareFile(string FileName) { if (File.Exists(FileName)) { try { File.Delete(FileName); }catch { }//Locked by something and you can forget trying to delete index.dat files this way } } private static void DeleteFireFoxFiles(string FireFoxPath) { RemoveSpywareFile(FireFoxPath + "cookies.sqlite"); RemoveSpywareFile(FireFoxPath + "content-prefs.sqlite"); RemoveSpywareFile(FireFoxPath + "downloads.sqlite"); RemoveSpywareFile(FireFoxPath + "formhistory.sqlite"); RemoveSpywareFile(FireFoxPath + "search.sqlite"); RemoveSpywareFile(FireFoxPath + "signons.sqlite"); RemoveSpywareFile(FireFoxPath + "search.json"); RemoveSpywareFile(FireFoxPath + "permissions.sqlite"); } public static void RunCleanup() { try { KillProcess("iexplore"); } catch { }//Need to stop incase they have locked the files we want to delete try { KillProcess("FireFox"); } catch { }//Need to stop incase they have locked the files we want to delete string RootPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal).ToLower().Replace("documents", ""); RemoveSpywareFiles(RootPath, @"AppData\Roaming\Macromedia\Flash Player\#SharedObjects",false); RemoveSpywareFiles(RootPath, @"AppData\Roaming\Macromedia\Flash Player\macromedia.com\support\flashplayer\sys\#local", false); RemoveSpywareFiles(RootPath, @"AppData\Local\Temporary Internet Files", false);//Not working RemoveSpywareFiles("", Environment.GetFolderPath(Environment.SpecialFolder.Cookies), true); RemoveSpywareFiles("", Environment.GetFolderPath(Environment.SpecialFolder.InternetCache), true); RemoveSpywareFiles("", Environment.GetFolderPath(Environment.SpecialFolder.History), true); RemoveSpywareFiles(RootPath, @"AppData\Local\Microsoft\Windows\Wer", true); RemoveSpywareFiles(RootPath, @"AppData\Local\Microsoft\Windows\Caches", false); RemoveSpywareFiles(RootPath, @"AppData\Local\Microsoft\WebsiteCache", false); RemoveSpywareFiles(RootPath, @"AppData\Local\Temp", false); RemoveSpywareFiles(RootPath, @"AppData\LocalLow\Microsoft\CryptnetUrlCache", false); RemoveSpywareFiles(RootPath, @"AppData\LocalLow\Apple Computer\QuickTime\downloads", false); RemoveSpywareFiles(RootPath, @"AppData\Local\Mozilla\Firefox\Profiles", false); RemoveSpywareFiles(RootPath, @"AppData\Roaming\Microsoft\Office\Recent", false); RemoveSpywareFiles(RootPath, @"AppData\Roaming\Adobe\Flash Player\AssetCache", false); if (Directory.Exists(RootPath + @"\AppData\Roaming\Mozilla\Firefox\Profiles")) { string FireFoxPath = RootPath + @"AppData\Roaming\Mozilla\Firefox\Profiles\"; DeleteFireFoxFiles(FireFoxPath); foreach (string SubPath in Directory.GetDirectories(FireFoxPath)) { DeleteFireFoxFiles(SubPath + "\\"); } } } private static void KillProcess(string ProcessName) {//We ned to kill Internet explorer and Firefox to stop them locking files ProcessName = ProcessName.ToLower(); foreach (Process P in Process.GetProcesses()) { if (P.ProcessName.ToLower().StartsWith(ProcessName)) P.Kill(); } } } } 使用此功能Environment.GetFolderPath()获取路径。遍历它们时,删除该目录中包含的所有文件。


-1
投票

您可以做这样的事情。

Environment.SpecialFolder

-1
投票

我知道您可能不知道如何开始,但是StackOverflow并非旨在成为您可以打开并请求代码的地方。

无论如何,使您入门的真正基本代码是:

using System.IO;

public static void Main()
{
 ClearFolder(new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache))); // Execute ClearFolder() on the IE's cache folder
 }

 void ClearFolder(DirectoryInfo diPath)
 {
   foreach (FileInfo fiCurrFile in diPath.GetFiles())
   {
      fiCurrFile.Delete();
   }
   foreach (DirectoryInfo diSubFolder in diPath.GetDirectories())
   {
      ClearFolder(diSubFolder); // Call recursively for all subfolders
   }
}

当然,您必须考虑访问权限,锁定文件,子文件夹等。

我建议您从此开始,然后在实际有一些工作代码时再提出其他问题。

© www.soinside.com 2019 - 2024. All rights reserved.