在文件path中使用通配符searchc#
我正在尝试使用通配符search来search我的桌面上任何以单词test
结尾的内容。
我有这个(ExcelToDataTable)需要一个string
作为参数:
ExcelToDataTable(@"C:\Users\name\Desktop\*test.xls");
然后,我有我的方法,用我试图从名为test的表中拉入的数据做一些事情:
public static DataTable ExcelToDataTable(string filePath) { DataTable dt = new DataTable(); using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { } }
所以我的问题是,用我提供的例子,有没有办法使用通配符,并将其馈入我的ExcelToDataTable
方法? 我想find我的桌面上的每个.xls文件在最后有单词test
…
谢谢
我会创build一个新的方法,“接受一个目录path的一层”,find所有的xls文件,并将它们传递给列表中的方法。
public static List<DataTable> ProcessDataTables(string dirPath) { xlsFiles = System.IO.Directory.GetFiles(dirPath, "*test.xls") var results = new List<DataTable> foreach(var file in xlsFiles) results.Append(ExcelToDataTable(file)) return results }
你应该考虑在那里进行一些理智检查(比如检查dirPath
实际上是一个存在的目录的path,任何调用这个的目录都可以用一个空列表作为返回值,以防xls文件不存在等)。
一般来说,最好使用Environment.SpecialFolder.Desktop
而不是硬编码“你的”桌面。
你可以做下面的例子让我说我想find以.jpg and .txt
结尾的文件我可以做到以下几点
var fi = new System.IO.DirectoryInfo(sDir).GetFiles(). Where(f => !(f.FullName.EndsWith(".jpg") || f.Name.EndsWith(".txt"))).ToArray();
在你的情况下,如果你正在寻找以.text
ext结尾的文件,请执行以下操作
var fi = new System.IO.DirectoryInfo(sDir).GetFiles(). Where(f => !(f.FullName.EndsWith(".text") || f.Name.EndsWith(".Text"))).ToArray();
你也可以在C# Linq Directory.EnumerateFiles()
方法下面做一个Googlesearch