如何使用c#获取特定的文件名
本文关键字:文件名 获取 何使用 | 更新日期: 2023-09-27 18:11:04
我在一个文件夹中有10个zip文件,路径如下
TargetDirectory="C:''docs''folder''">
一些zip文件的名称类似于这个
abc-19870908.Zip
abc-19870908.zip
abc-12345678.zip
有些是这样的。。。
doc.zip
doc123.zip
..
我使用以下代码获取所有文件名。。。
string [] fileEntries = Directory.GetFiles(targetDirectory);
foreach(string fileName in fileEntries)
{
// here I need to compare ,
// I mean I want to get only these files which are having
// these type of filenames `abc-19870908.Zip`
if (filename == "")
{
// I want to do something
}
}
我必须在if(filename == "")
行的双引号中加上什么,才能像abc-19870908.Zip
一样获得这些文件名。
有人能对此提出一些想法吗?
非常感谢。。。
如果您只对包含破折号的zip文件感兴趣,可以向Directory.GetFiles.提供搜索模式
string [] fileEntries = Directory.GetFiles(targetDirectory, "*-*.zip");
有关这些搜索模式的更多信息,请查看此链接:http://msdn.microsoft.com/en-us/library/wz42302f.aspx
我想你可以做
if (filename.Contains("-"))
{
...
}
如果-
总是出现在您感兴趣的文件名中
或
if (filename.StartsWith("abc-"))
{
...
}
如果您感兴趣的文件名总是以abc-
开头。
您可以执行if(filename.StartsWith ("abc-") )
、if (filename.Contains ( "-" ) )
或string [] fileEntries = Directory.GetFiles(targetDirectory, "abc-*.Zip");
// Consider using this overload:
// public static string[] GetFiles( string path, string searchPattern)
string [] fileEntries = Directory.GetFiles(targetDirectory, "abc*.zip");
或者,您可以使用如下正则表达式:
string [] fileEntries = Directory.GetFiles(targetDirectory);
foreach(string fileName in fileEntries)
{
if(Regex.Match (filename, @"abc.*?'.zip", RegexOptions.IgnoreCase))
{
// i want to do something
}
}
List<String> files = Directory.GetFiles(@"C:'docs'folder'").ToList();
var g = from String s in files where s.StartsWith("abc") select s;
foreach(var z in g)
{
//Do stuff in here as a replacement for your if
}
您可以使用与文件名匹配的正则表达式,大致如下:
string sPattern = "abc-'d+'.zip";
string [] fileEntries = Directory.GetFiles(targetDirectory);
foreach(string fileName in fileEntries)
{
// here i need to compare , i mean i want to get only these files which are having these type of filenames `abc-19870908.Zip`
if(System.Text.RegularExpressions.Regex.IsMatch(filename , sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
{
// i want to do something
}
}
正则表达式"abc-''d+.zip"的意思是字符串"abc-"后跟任意数字,后跟a。后面跟着字符串"zip"(正则表达式语法(