Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#删除247个不同子文件夹中的内容_C#_Batch File - Fatal编程技术网

C#删除247个不同子文件夹中的内容

C#删除247个不同子文件夹中的内容,c#,batch-file,C#,Batch File,我想删除子文件夹中的所有内容 C:\Folder-->根目录 A、 B、C、D……。-->子文件夹(信息:共有247个子文件夹) 我不知道如何实现它,例如在c#或批处理文件中 非常感谢您的帮助。第二个参数为true(递归),删除所有子文件夹 Directory.Delete("yourpath", true); 如果要删除目录的内容,可以执行以下操作: Directory.EnumerateFiles("yourpath", "*", SearchOption.AllDirectories).

我想删除子文件夹中的所有内容

C:\Folder-->根目录

A、 B、C、D……。-->子文件夹(信息:共有247个子文件夹)

我不知道如何实现它,例如在c#或批处理文件中


非常感谢您的帮助。

第二个参数为true(递归),删除所有子文件夹

Directory.Delete("yourpath", true);
如果要删除目录的内容,可以执行以下操作:

Directory.EnumerateFiles("yourpath", "*", SearchOption.AllDirectories).ToList().ForEach(f => File.Delete(f));
批量生产也很容易:

在c#中,您可以使用:

foreach(string directory in Directory.GetDirectories(@"C:\Folder"))
   Directory.Delete(directory, true);
您还可以将搜索模式传递到c中的
目录.GetDirectories(…)
#


注意:如果您没有对sourceDirectory的权限,这将不起作用(try-catch将在这两种情况下防止应用程序错误)

如果您需要删除根文件夹中的所有内容(所有子文件夹和其中的所有文件,以及根文件夹本身中的文件),则选择Yes
Directry。删除('path',true)
但是,如果您需要保留子文件夹(A、B、C、D),同时仍删除其中的所有文件,则没有直接/内置的方法可以做到这一点,
一般来说,您需要首先获取根文件夹中的所有文件夹,然后遍历它们,然后删除其中的所有文件,使子文件夹为空

类似于此方法(调用传递根路径的方法):


C#或批次。它们不太一样。是的,我有管理员权限。嘿,脚本清理了子目录。
foreach(string directory in Directory.GetDirectories(@"C:\Folder"))
   Directory.Delete(directory, true);
foreach(var file in Directory.EnumerateFiles(sourceDirectory, 
                   "*", SearchOption.AllDirectories))
{
    File.Delete(file);
}
try
{
Directory.GetFiles(sourceDirectory, "*", SearchOption.AllDirectories)
     .ToList().ForEach(File.Delete);
}
catch(UnauthorizedAccessException uae)
{
}
private void DeleteJustFilesFromFolder(string roootPath)
{
   DirectoryInfo d = new DirectoryInfo(roootPath);

   //delete files from root
   foreach (FileInfo fi in d.GetFiles())
   {
     fi.Delete();
   }

   //get root subfolders
   foreach (DirectoryInfo di in d.GetDirectories())
   {
      DeleteJustFilesFromFolder(di.FullName);

    //kept commented, but if you prefer then can delete subfolder by this line
    //di.Delete(); 
   }
}