在文件路径中使用通配符搜索 c#
Use wildcard search in file path c#
我正在尝试使用通配符搜索在我的桌面上搜索任何以单词 test
.
结尾的内容
我有这个 (ExcelToDataTable) 接受一个 string
作为参数:
ExcelToDataTable(@"C:\Users\name\Desktop\*test.xls");
然后我用我的方法对我试图从 sheet 中提取的数据执行一些操作,该 sheet 名为 test:
public static DataTable ExcelToDataTable(string filePath)
{
DataTable dt = new DataTable();
using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
}
}
所以我的问题是,对于我提供的示例,有没有办法使用通配符并将其输入到我的 ExcelToDataTable
方法中?我想在我的桌面上找到每个末尾有单词 test
的 .xls 文件...
谢谢
我会创建一个新方法,"one level up" 接受目录路径,找到其中的所有 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
实际上是一个存在的目录的路径,任何调用它的东西都可以用一个空列表作为 return不存在 xls 文件时的值等。)
一般来说,使用 Environment.SpecialFolder.Desktop
而不是硬编码 "your" 桌面也是最佳做法。
您可以执行以下操作,例如,假设我想查找以 .jpg and .txt
结尾的文件,我可以执行以下操作
var fi = new System.IO.DirectoryInfo(sDir).GetFiles().
Where(f => !(f.FullName.EndsWith(".jpg") || f.Name.EndsWith(".txt"))).ToArray();
在您的情况下,如果您要查找以 .text
扩展名结尾的文件,请执行以下操作
var fi = new System.IO.DirectoryInfo(sDir).GetFiles().
Where(f => !(f.FullName.EndsWith(".text") || f.Name.EndsWith(".Text"))).ToArray();
您还可以Google搜索以下C# Linq Directory.EnumerateFiles()
方法
我正在尝试使用通配符搜索在我的桌面上搜索任何以单词 test
.
我有这个 (ExcelToDataTable) 接受一个 string
作为参数:
ExcelToDataTable(@"C:\Users\name\Desktop\*test.xls");
然后我用我的方法对我试图从 sheet 中提取的数据执行一些操作,该 sheet 名为 test:
public static DataTable ExcelToDataTable(string filePath)
{
DataTable dt = new DataTable();
using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
}
}
所以我的问题是,对于我提供的示例,有没有办法使用通配符并将其输入到我的 ExcelToDataTable
方法中?我想在我的桌面上找到每个末尾有单词 test
的 .xls 文件...
谢谢
我会创建一个新方法,"one level up" 接受目录路径,找到其中的所有 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
实际上是一个存在的目录的路径,任何调用它的东西都可以用一个空列表作为 return不存在 xls 文件时的值等。)
一般来说,使用 Environment.SpecialFolder.Desktop
而不是硬编码 "your" 桌面也是最佳做法。
您可以执行以下操作,例如,假设我想查找以 .jpg and .txt
结尾的文件,我可以执行以下操作
var fi = new System.IO.DirectoryInfo(sDir).GetFiles().
Where(f => !(f.FullName.EndsWith(".jpg") || f.Name.EndsWith(".txt"))).ToArray();
在您的情况下,如果您要查找以 .text
扩展名结尾的文件,请执行以下操作
var fi = new System.IO.DirectoryInfo(sDir).GetFiles().
Where(f => !(f.FullName.EndsWith(".text") || f.Name.EndsWith(".Text"))).ToArray();
您还可以Google搜索以下C# Linq Directory.EnumerateFiles()
方法