Рейтинг:
16
OriginalGriff
Попробуй:
File.Delete(file.Name);
Asyraf Patt
если (checkBox2. Checked){
Directoryinfoкласс реж = новый Directoryinfoкласс(системы.ИО.Путь.GetTempPath());
FileInfo[] Files = Dir. GetFiles();
foreach (FileInfo file in Files)
{
мыши listview1.Предметы.Добавить(file.Name);
Файл.Удалить(file.Name);
}
}
почему файл в C:\Users\Administrator\AppData\Local\Temp все еще не удалили ?
Thomas Daniels
Вероятно, потому, что GetTempPath () не возвращает папку, которую вы упомянули в своем комментарии... На моем компьютере он возвращается C:\Windows\Temp и не исключено, что он и на вашем тоже - проверьте эта документация чтобы узнать, как определяется местонахождение Геттемппата.
OriginalGriff
Как предполагает ProgramFox, это может быть путь.
Также может быть, что временный файл используется другим приложением.
В обоих случаях вы получили какие-либо исключения и что показывает отладчик, когда вы запускаете этот код строка за строкой?
Michael_Davies
Существует несколько временных каталогов, System. IO. Path.GetTempPath () возвращает первый временный каталог, который он находит в списке поиска;
Этот метод проверяет наличие переменных окружения в следующем порядке и использует первый найденный путь:
Путь, указанный переменной среды TMP.
Путь, указанный переменной среды TEMP.
Путь, указанный переменной среды USERPROFILE.
каталог Windows.
Переменная Temp обычно устанавливается в системный каталог temp C:\Windows\Temp и вам нужны права доступа, прежде чем вы сможете даже перечислить содержимое.
Существуют и другие временные параметры для пользователя в папке & lt;User Profile Dir & gt;\AppData в локальных и перемещаемых подкаталогах. Возможно, было бы лучше проверить их на наличие временного каталога, а затем удалить из него, единственное, что предотвратило бы удаление файла там, было бы то, что он был открыт другим процессом.
Чтобы получить доступ к Windows\Temp, см. https://msdn.microsoft.com/en-us/library/c1f66bc2(v=против 110). aspx
BillWoodruff
ИМХО, этот комментарий заслуживает того, чтобы быть опубликованным в качестве решения и быть проголосованным !
Рейтинг:
1
Asyraf Patt
string tempfolder = ("C:\\Users\\Administrator\\AppData\\Local\\Temp");
string[] tempfiles = Directory.GetFiles(tempfolder, "*.*", SearchOption.AllDirectories);
foreach (string filePath in Directory.GetFiles(tempfolder, "*.*", SearchOption.AllDirectories))
{
try
{
FileInfo currentFile = new FileInfo(filePath);
currentFile.Delete();
}
catch (Exception ex)
{
Debug.WriteLine("Error on file: {0}\r\n {1}", filePath, ex.Message);
}
}