如何获取进程的特定目录
本文关键字:何获 取进程 | 更新日期: 2023-09-27 18:35:15
我有一个包含许多子目录的目录。例如:
Emp1
Acc
profile
pro1.xml
pro2.xml
data
Emp2
Acc
profile
pro1.xml
pro2.xml
data
Emp3
Acc
profile
pro1.xml
pro2.xml
data
我想编写一个 foreach 循环,以便我只获得驻留在配置文件文件夹中的文件。例如:
foreach string filename in directory.getdirectories(filepat){
//code.
}
有人可以帮我创建一个搜索模式来做到这一点吗?
在问题编辑后编辑....
var directoryInfo = new DirectoryInfo(@"c:'temp'stackoverflow");
foreach (var element in dinfo.GetDirectories(@"profile", SearchOption.AllDirectories).SelectMany(x => x.GetFiles()))
{
Console.WriteLine (element);
}
喜欢这个?
我为文件和目录编写了一些流畅的扩展,可以让您使用 linq 很好地做到这一点,看看这里:http://blog.staticvoid.co.nz/2011/11/staticvoid-io-extentions-nuget.html
或使用Install-Package StaticVoid.Core.IO
从Nuget下载
diretory.Directories().SelectMany(d =>
d.Directory(di => di.Name == "Acc")
.Directory(di => di.Name == "profile").Files());
这可能是你想要的...
string [] dirname = Directory.GetDirectories(path){
foreach( string s in dirname)
{
if(s.Contains("profile"))
{
//do your work
}
}
也许您可以尝试如下操作:
IEnumerable<string> directories = Directory.GetDirectories("PATH", "*.*", SearchOption.AllDirectories).Where(d => d == "ProfileFolder");
foreach (string directory in directories)
{
string[] files = Directory.GetFiles(directory, "*.*", SearchOption.TopDirectoryOnly);
}