C# 如何在Directory.GetFiles(';path';)中使用数组

C# 如何在Directory.GetFiles(';path';)中使用数组,c#,arrays,file,C#,Arrays,File,我想在Directory.GetFiles('use array')中使用数组 我不能在Directory.GetFiles的路径中使用dirs string path = @"D:\"; var dirs = Directory.GetDirectories(path).Where(d => !isExcluded(_excludedDirectories, d)); var files = Directory.GetFiles(dirs).Where(d => !isExclud

我想在Directory.GetFiles('use array')中使用数组

我不能在Directory.GetFiles的路径中使用dirs

string path = @"D:\";
var dirs = Directory.GetDirectories(path).Where(d => !isExcluded(_excludedDirectories, d));
var files = Directory.GetFiles(dirs).Where(d => !isExcluded(_excludedDirectories, d));

如何使用它?

这是因为返回一个DirectoryInfo[]数组,而不是一个字符串,所以如果您像下面这样更改代码,它可能会工作

var files = new List<String>();
var dirs = Directory.GetDirectories(path).Where(d => !isExcluded(_excludedDirectories, d));
foreach(var item in dirs)
{
foreach(var item1 in Directory.GetFiles(item).Where(d => !isExcluded(_excludedDirectories, d)))
files.Add(item1);
}
var files=newlist();
var dirs=Directory.GetDirectories(path).Where(d=>!isExcluded(_excludedDirectories,d));
foreach(目录中的var项目)
{
foreach(目录.GetFiles(item).Where(d=>!isExcluded(_excludedDirectories,d))中的var item1)
添加(第1项);
}

这是因为返回一个DirectoryInfo[]数组,而不是一个字符串,所以如果您像下面这样更改代码,它可能会工作

var files = new List<String>();
var dirs = Directory.GetDirectories(path).Where(d => !isExcluded(_excludedDirectories, d));
foreach(var item in dirs)
{
foreach(var item1 in Directory.GetFiles(item).Where(d => !isExcluded(_excludedDirectories, d)))
files.Add(item1);
}
var files=newlist();
var dirs=Directory.GetDirectories(path).Where(d=>!isExcluded(_excludedDirectories,d));
foreach(目录中的var项目)
{
foreach(目录.GetFiles(item).Where(d=>!isExcluded(_excludedDirectories,d))中的var item1)
添加(第1项);
}

您可以像这样继续linq方法链:

string path = @"D:\";
var files = Directory
    .GetDirectories(path)
    .Where(d => !isExcluded(_excludedDirectories, d))
    .Select(Directory.GetFiles)
    .Where(f => !isExcluded(_excludedDirectories, f));
如果要删除这些文件,请执行以下操作:

string path = @"D:\";
Directory
    .GetDirectories(path)
    .Where(d => !isExcluded(_excludedDirectories, d))
    .Select(Directory.GetFiles)
    .Where(f => !isExcluded(_excludedDirectories, f))
    .SelectMany(f => f)
    .ToList()
    .ForEach(File.Delete);

您可以像这样继续linq方法链:

string path = @"D:\";
var files = Directory
    .GetDirectories(path)
    .Where(d => !isExcluded(_excludedDirectories, d))
    .Select(Directory.GetFiles)
    .Where(f => !isExcluded(_excludedDirectories, f));
如果要删除这些文件,请执行以下操作:

string path = @"D:\";
Directory
    .GetDirectories(path)
    .Where(d => !isExcluded(_excludedDirectories, d))
    .Select(Directory.GetFiles)
    .Where(f => !isExcluded(_excludedDirectories, f))
    .SelectMany(f => f)
    .ToList()
    .ForEach(File.Delete);

这将返回所有文件的
列表

var List<string> files = Directory.GetDirectories(path)
        .Where(directory => !isExcluded(_excludedDirectories, directory))
        .SelectMany(Directory.GetFiles)
        .Where(file => !isExcluded(_excludedFiles, file))
        .ToList();
var List files=Directory.GetDirectories(路径)
.Where(目录=>!ISExclude(_ExcludedDirectory,目录))
.SelectMany(Directory.GetFiles)
.Where(文件=>!ISExclude(_ExcludedFile,文件))
.ToList();

返回所有文件的
列表:

var List<string> files = Directory.GetDirectories(path)
        .Where(directory => !isExcluded(_excludedDirectories, directory))
        .SelectMany(Directory.GetFiles)
        .Where(file => !isExcluded(_excludedFiles, file))
        .ToList();
var List files=Directory.GetDirectories(路径)
.Where(目录=>!ISExclude(_ExcludedDirectory,目录))
.SelectMany(Directory.GetFiles)
.Where(文件=>!ISExclude(_ExcludedFile,文件))
.ToList();

您所说的“使用数组”是什么意思?您是否有多个目录?第二个目录位于何处的原因是什么?您已经排除了不需要的目录“使用数组”是什么意思?您是否有多个目录?第二个目录位于何处的原因是什么?您已经排除了不需要的目录REACH(字符串x in?{我想删除这里的文件}
我要写什么?@KnightM for delete您可以使用foreach(字符串x in?{File.delete(x);}字符串x in what?这是我的问题哦,对不起,foreach(文件中的字符串x)我如何删除所有文件,不包括像*.pdfforeach(字符串x in?{我想删除这里的文件}
我要写什么?@KnightM for delete你可以使用foreach(字符串x in?{File.delete(x)}字符串x在什么地方?这是我的问题哦,对不起,foreach(文件中的字符串x)我如何删除所有文件,排除像*.pdf这样的特定扩展名