#c# #visual-studio
#c# #visual-studio
Вопрос:
Добрый день!
Я пытаюсь создать приложение C # Forms, в котором пользователь выбирает каталоги с помощью FolderDialog, а пути сохраняются в list.txt файл после чтения TextBox1. В list.txt пользователь может добавлять и удалять пути.
фрагмент кода:
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Lines = System.IO.File.ReadAllLines(fileName);
}
string fileName = Environment.CurrentDirectory @"/etc/list.txt";
private void LoadTextboxes()
{
string[] loadedLines = System.IO.File.ReadAllLines(Environment.CurrentDirectory @"/etc/list.txt");
int index = 0;
int n = int.Parse(loadedLines[index]);
string[] lines = new string[n];
Array.Copy(loadedLines, index 1, lines, 0, n);
textBox1.Lines = lines;
}
private void DeleteFilesFromDirectory(string directoryPath)
{
DirectoryInfo d = new DirectoryInfo(directoryPath);
foreach (FileInfo fi in d.GetFiles())
{
fi.Delete();
}
foreach (DirectoryInfo di in d.GetDirectories())
{
DeleteFilesFromDirectory(di.FullName);
di.Delete();
}
}
private void button1_Del(object sender, EventArgs e)
{
DeleteFilesFromDirectory(textBox1.Text);
}
list.txt форматировать:
C:/downloads
F:/doc/scan
D:/etc
важно удалить только вложенные папки и файлы, но корневые папки должны остаться.
На данный момент я покончил со своими слабыми знаниями c #, и теперь я застрял надолго.
DeleteFilesFromDirectory удаляет только первую строку TextBox1.
Как заставить DeleteFilesFromDirectory читать и удалять все строки из TextBox1?
Комментарии:
1. Итак, корневая папка — это downloads, doc и т.д.?
2. Если заданный путь равен F:/doc/scan затем нужно стереть все при проверке папки, но оставить проверку корневой папки пустой
Ответ №1:
Проверьте это, я это тестировал.
//put all paths in array reading line by line
string[] paths = System.IO.File.ReadAllLines(@"path-tolist.txt");
//get line by line paths
foreach (string path in paths)
{
if (Directory.Exists(path))
{
//deletes all files and parent
//recursive:true, deletes subfolders and files
Directory.Delete(path, true);
//create parent folder
Directory.CreateDirectory(path);
}
}//end outer for