#c# #desktop-application
#c# #desktop-приложение
Вопрос:
Я создаю приложение Windows Form на C #, в котором будут перечислены все файлы, присутствующие в каталоге предварительной выборки, Temp и% temp% установки Windows, и, наконец, удалит их. Но я застрял в точке, где мое приложение не может обрабатывать исключение ниже. Пожалуйста, помогите мне предложить лучшее решение для достижения моей цели.
«Система.Исключение UnauthorizedAccessException: «Доступ к пути»C:WindowsPrefetch «в этом отказано».
Мой код для приложения Windows form приведен ниже
using System;
using System.Windows.Forms;
using System.IO;
namespace ZAP_CLEANER
{
public partial class UC_FullScan : UserControl
{
public UC_FullScan()
{
InitializeComponent();
}
private void ibtn_StartScan_Click(object sender, EventArgs e)
{
string rootPath = @"C:WindowsPrefetch";
string[] dirs = Directory.GetDirectories(rootPath);
var files = Directory.GetFiles(rootPath);
foreach (string dir in dirs)
{
File.SetAttributes(dir, FileAttributes.Normal);
textBox1.Text = dir;
}
foreach (string file in files)
{
File.SetAttributes(file, FileAttributes.Normal);
textBox1.Text = file;
}
}
public void DeleteDirectory(string targetDir)
{
File.SetAttributes(targetDir, FileAttributes.Normal);
string[] files = Directory.GetFiles(targetDir);
string[] dirs = Directory.GetDirectories(targetDir);
foreach (string file in files)
{
File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);
}
foreach (string dir in dirs)
{
DeleteDirectory(dir);
}
Directory.Delete(targetDir, false);
}
private void ibtn_Clean_Click(object sender, EventArgs e)
{
string rootPath = @"C:WindowsPrefetch";
DeleteDirectory(rootPath);
}
}
}
Комментарии:
1. Сообщение об ошибке означает именно то, что оно говорит. Вам отказано в доступе к этой папке по соображениям безопасности. Вы можете попробовать войти в систему как администратор.
2. Ну, на самом деле я вошел в систему как администратор.
3. Тогда, боюсь, вам не повезло. Похоже, что Microsoft резервирует эту папку исключительно для операционной системы.
4. Хорошо, однако мне интересно, как Ccleaner ( ccleaner.com/ccleaner/download ) или приложения такого типа реализуют то же самое.
5. Я действительно не знаю, как Windows обрабатывает пользователей-администраторов, но возможно ли, что вам нужно явно запускать свое приложение с правами администратора (даже если вы вошли в систему как администратор)?