C# 仅删除两个子文件夹的内容

C# 仅删除两个子文件夹的内容,c#,C#,我这里有我的代码,将删除,但它将删除包括两个子文件夹。我只想删除两个子文件夹的内容 Array.ForEach(Directory.GetFiles(txtfilename.Text), File.Delete); System.IO.DirectoryInfo di = new DirectoryInfo(txtfilename.Text); foreach (FileInfo file in di.GetFiles())

我这里有我的代码,将删除,但它将删除包括两个子文件夹。我只想删除两个子文件夹的内容

          Array.ForEach(Directory.GetFiles(txtfilename.Text), File.Delete);
          System.IO.DirectoryInfo di = new DirectoryInfo(txtfilename.Text);

            foreach (FileInfo file in di.GetFiles())
            {
                file.Delete();
            }
            foreach (DirectoryInfo dir in di.GetDirectories())
            {
                dir.Delete(true);
            }

如果有人能调试或展示一些解决方案,非常感谢。

好的。我解决了自己的问题。我用了这个密码。在搜索了一些代码并结合了每个想法之后,这就是我提出这种代码的原因,但我并不完全理解我在做什么

   string local = txtfilename.Text;
   string[] dirs = Directory.GetFiles(local,
                   "*.csv*", SearchOption.AllDirectories);

   List<string> singleDirNames = dirs.Select(x => new 
   FileInfo(x).Directory.Name).Distinct().ToList();

   foreach (string filePath in dirs)
      {
      if (filePath.Contains(".csv"))
      File.Delete(filePath);
      }
string local=txtfilename.Text;
string[]dirs=Directory.GetFiles(本地、,
“*.csv*”,SearchOption.AllDirectories);
列出singleDirNames=dirs。选择(x=>new
FileInfo(x).Directory.Name).Distinct().ToList();
foreach(dirs中的字符串文件路径)
{
if(filePath.Contains(“.csv”))
File.Delete(文件路径);
}

因为两个子文件夹的内容都是csv文件。我专门针对要删除的文件扩展名。我不太想把我的某个扩展名删除。我真的想删除这两个子文件夹中的所有内容。有人能改进我的答案吗?

好的。我解决了自己的问题。我用了这个密码。在搜索了一些代码并结合了每个想法之后,这就是我提出这种代码的原因,但我并不完全理解我在做什么

   string local = txtfilename.Text;
   string[] dirs = Directory.GetFiles(local,
                   "*.csv*", SearchOption.AllDirectories);

   List<string> singleDirNames = dirs.Select(x => new 
   FileInfo(x).Directory.Name).Distinct().ToList();

   foreach (string filePath in dirs)
      {
      if (filePath.Contains(".csv"))
      File.Delete(filePath);
      }
string local=txtfilename.Text;
string[]dirs=Directory.GetFiles(本地、,
“*.csv*”,SearchOption.AllDirectories);
列出singleDirNames=dirs。选择(x=>new
FileInfo(x).Directory.Name).Distinct().ToList();
foreach(dirs中的字符串文件路径)
{
if(filePath.Contains(“.csv”))
File.Delete(文件路径);
}

因为两个子文件夹的内容都是csv文件。我专门针对要删除的文件扩展名。我不太想把我的某个扩展名删除。我真的想删除这两个子文件夹中的所有内容。有人能改进我的anwswer吗?

什么是
dir.Delete(true)用于..?是的,它将在目录中删除。例如,这是我的目录e:\user\sam\des我只需要映射des文件夹,但是des文件夹有两个子文件夹,我只想删除这两个子文件夹的内容。然后停止删除所有目录,不要删除要保留的目录。您在
dir
中有每个人的名字,但您只是在删除循环中看到的所有内容。如果你真的读了代码,这会很有帮助。那个代码不适合它。我需要一些指南如何删除两个子文件夹的内容。因为在文本字段的“我的表单”中,我们只能选择一个文件夹目录。hi@Sam,
if
将帮助您。例如检查是否不删除目录名。。好吧,只要想一想能辨别的东西就可以了。是的,删除这个文件夹,不是的,不要删除这个。什么是
dir.delete(true)用于..?是的,它将在目录中删除。例如,这是我的目录e:\user\sam\des我只需要映射des文件夹,但是des文件夹有两个子文件夹,我只想删除这两个子文件夹的内容。然后停止删除所有目录,不要删除要保留的目录。您在
dir
中有每个人的名字,但您只是在删除循环中看到的所有内容。如果你真的读了代码,这会很有帮助。那个代码不适合它。我需要一些指南如何删除两个子文件夹的内容。因为在文本字段的“我的表单”中,我们只能选择一个文件夹目录。hi@Sam,
if
将帮助您。例如检查是否不删除目录名。。好吧,只要想一想可以辨别的东西是的,删除这个文件夹,不是的,不要删除这个。