Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/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# 特定文件名的System.IO.Directory.GetFiles_C#_Getfiles - Fatal编程技术网

C# 特定文件名的System.IO.Directory.GetFiles

C# 特定文件名的System.IO.Directory.GetFiles,c#,getfiles,C#,Getfiles,在“我的本地文件”文件夹中,包含文件。 例如TB2.8.5_asd_asd和TB2.9.5_asd_asd。如何仅获取名称以TB2.6.5开头的文件_ string[] dirs = System.IO.Directory.GetFiles(ConfigurationManager.AppSettings[@"LocalFolderPath"], "*" + ConfigurationManager.AppSettings["LocalFilesExtension"]).Where(s =>

在“我的本地文件”文件夹中,包含文件。 例如TB2.8.5_asd_asd和TB2.9.5_asd_asd。如何仅获取名称以TB2.6.5开头的文件_

string[] dirs = System.IO.Directory.GetFiles(ConfigurationManager.AppSettings[@"LocalFolderPath"], "*" + ConfigurationManager.AppSettings["LocalFilesExtension"]).Where(s => s.StartsWith("TB2.6.5_")).ToArray();
该方法允许您将搜索模式指定为其输入参数之一。您可以利用它来完成您的需求。因此,代码如下所示:

string PathToDirectory=Path.Combine(ConfigurationManager.AppSettings[@"LocalFolderPath"], ConfigurationManager.AppSettings[@"LocalFilesExtension"];
string searchPattern="TB2.6.5_*.*";
string[] dirs =  System.IO.Directory.GetFiles(PathToDirectory,searchPattern,SearchOption.TopDirectoryOnly).ToArray();
SearchOption
更改为
AllDirectories
如果要将搜索扩展到子目录,可以根据需要更改搜索模式

根据您的评论更新:
路径中的非法字符


这将取决于您在配置中存储的值。例如,
AppSettings[“localfileextension”]
如果有
\
用作路径分隔符,则无需在i\之前包含
@
,因为它会将
\
转换为
\\\
,如果配置中只有一个
\
,则使用
@

可以使用过滤器参数进行设置

i、 e


ConfigurationManager.AppSettings[“LocalFileExtension”]
包含什么?它是否以
开头?它以路径和扩展名开头您的
localfileextension
看起来是空的,因此您在
*
上进行筛选,而不是
*.
@JeroenvanLangen如何仅获取以TB2.6.5开头的文件名?目前,我能够获取path.string PathToDirectory=“ConfigurationManager.AppSettings[@'LocalFolderPath'],''+ConfigurationManager.AppSettings['LocalFileExtension']中的所有文件非法字符;string[]dirs=System.IO.Directory.GetFiles(PathToDirectory,“TB2.6.5.*”,System.IO.SearchOption.AllDirectories).ToArray()@是的:原因是您存储在配置中的数据,请参阅更新notes@Yeep:因此使用
string PathToDirectory=Path.Combine(ConfigurationManager.AppSettings[@“LocalFolderPath”]、ConfigurationManager.AppSettings[@“localfileextension”];
string[]dirs=System.IO.Directory.GetFiles(“Path”、“.exe”);
"filename.exe" = filters for filename.exe
"filename.*" = filters all files with the name filename
"*filename*" = contains filename