C # Forms считывает TextBox1 все строки и удаляет заданные пути?

#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