string userRoot = Environment.GetEnvironmentVariable("USERPROFILE");
string paths = string.Format("{0}\\AppData\\Local\\Temp", userRoot);
DirectoryInfo folder = new DirectoryInfo(paths);
foreach (FileInfo file in folder.GetFiles())
{
file.Delete();
}
foreach (DirectoryInfo dir in folder.GetDirectories())
{
dir.Delete(true);
}
Это мой код: он удаляет всё из папки %temp%
Есть вопрос: при удалении находятся файлы, которые открыты в системных программах. Так вот, можно ли сделать так, чтобы при виде таких файлов c# их просто пропускал?
try/catchоберните. А вообще, если есть такие файлы, и их надо удалить, то стоит подумать о том, как это обойти, например, можно попробовать использоватьMoveFileExс флагомMOVEFILE_DELAY_UNTIL_REBOOTиз WinAPI, для того, чтоб пометить файл на удаление после перезагрузки компьютера (пример). Так вот удалять файлы, без ожидания завершения процесса, оставлять следы, ну.. Странное решение. – EvgeniyZ Jun 17 '23 at 17:33new EnumerationOptions { IgnoreInaccessible = true }. PS: лучше использовать методEnumerateFiles. – Alexander Petrov Jun 17 '23 at 18:06