文件按文件名模式存在

发布于 2024-07-29 07:41:44 字数 242 浏览 3 评论 0原文

我正在使用:

File.Exists(filepath)

我想将其替换为模式,因为文件名的第一部分发生了变化。

例如:文件可能是

01_peach.xml
02_peach.xml
03_peach.xml

如何根据某种搜索模式检查文件是否存在?

I am using:

File.Exists(filepath)

I would like to swap this out for a pattern, because the first part of the filename changes.

For example: the file could be

01_peach.xml
02_peach.xml
03_peach.xml

How can I check if the file exists based on some kind of search pattern?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

标点 2024-08-05 07:41:44

您可以使用模式创建目录列表来检查文件

string[] files = System.IO.Directory.GetFiles(path, "*_peach.xml", System.IO.SearchOption.TopDirectoryOnly);
if (files.Length > 0)
{
    //file exist
}

You can do a directory list with a pattern to check for files

string[] files = System.IO.Directory.GetFiles(path, "*_peach.xml", System.IO.SearchOption.TopDirectoryOnly);
if (files.Length > 0)
{
    //file exist
}
明媚殇 2024-08-05 07:41:44

如果您使用 .NET Framework 4 或更高版本,则可以使用 Directory.EnumerateFiles

bool exist = Directory.EnumerateFiles(path, "*_peach.xml").Any();

这可能比使用 Directory.GetFiles 更有效,因为您可以避免迭代整个文件列表。

If you're using .NET Framework 4 or above you could use Directory.EnumerateFiles

bool exist = Directory.EnumerateFiles(path, "*_peach.xml").Any();

This could be more efficient than using Directory.GetFiles since you avoid iterating trough the entire file list.

ぶ宁プ宁ぶ 2024-08-05 07:41:44

对于针对特定模式的更高级搜索,可能值得使用文件通配符,它​​允许您像在 .gitignore 文件

请参阅此处:.NET 中的文件通配符

这允许您添加包含项和内容。 排除您的搜索。

请参阅下面来自上述 Microsoft 源代码的示例代码片段:

Matcher matcher = new Matcher();
matcher.AddIncludePatterns(new[] { "*_peach.xml" });

IEnumerable<string> matchingFiles = matcher.GetResultsInFullPath(filepath);

For more advanced searching against a specific pattern, it might be worth using file globbing which allows you to use search patterns like you would in a .gitignore file.

See here: File globbing in .NET

This allows you to add both inclusions & exclusions to your search.

Please see below the example code snippet from the Microsoft Source above:

Matcher matcher = new Matcher();
matcher.AddIncludePatterns(new[] { "*_peach.xml" });

IEnumerable<string> matchingFiles = matcher.GetResultsInFullPath(filepath);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文