如何在File.Exist方法中添加一些包含一些数字的文件名?例如“file1.abc”,“file2.abc”,“file3.abc”等,而不使用正则表达式?
答案 0 :(得分:4)
您是否尝试确定各种文件是否符合fileN.abc
哪个N
是任何数字?因为File.Exists
无法做到这一点。请改用Directory.EnumerateFiles来获取与特定模式匹配的文件列表。
答案 1 :(得分:1)
你的意思是
for (int i = 1; i < 4; i++)
{
string fileName = "file" + i.ToString() + ".abc";
if (File.Exists(fileName))
{
// ...
}
}
答案 2 :(得分:0)
new DirectoryInfo(dir).EnumerateFiles("file*.abc").Any();
或
Directory.EnumerateFiles(dir, "file*.abc").Any();
答案 3 :(得分:0)
在unix世界中,它被称为 globbing 。也许你可以找到一个.NET库?作为起点,请查看此帖子:glob pattern matching in .NET
答案 4 :(得分:-2)
下面是代码快照,它将返回名称前缀为“file”的所有文件,其格式看起来像“fileN.abc”,即使它不会返回文件名“file.abc”或“fileX.abc”等
List<string> str =
Directory.EnumerateFiles(Server.MapPath("~/"), "file*.abc")
.Where((file => (!string.IsNullOrWhiteSpace(
Path.GetFileNameWithoutExtension(file).Substring(
Path.GetFileNameWithoutExtension(file).IndexOf(
"file") + "file".Length)))
&&
(int.TryParse(Path.GetFileNameWithoutExtension(file).Substring(
Path.GetFileNameWithoutExtension(file).IndexOf("file") + "file".Length),
out result) == true))).ToList();
希望这对你的时间非常有帮助。