我刚刚在我的应用程序中注意到一个非常奇怪的事情。我有一段代码,用于检查文件夹或任何子文件夹是否包含.xls文件而不是.xlsx. 这是因为我使用EPPluswhich 无法处理.xls文件。在运行Windows 10 Home下面代码的计算机上只返回.xls文件而不返回任何.xlsx文件。我现在尝试在一Windows 10 Pro台机器上运行相同的代码,并且代码也获取了.xlsx文件。我知道我只能.xls使用文件,Linq 但我仍然想知道为什么会发生这种情况。
var filePaths = Directory.GetFiles("C:\\xmlfiles", "*.xls", SearchOption.AllDirectories).ToList();
if (filePaths.Count > 0)
{
var files = string.Join(",", filePaths);
throw new Exception($"Folder contains .xls files which EPPlus can't handle. Please convert them first. Files: {files}");
}
Run Code Online (Sandbox Code Playgroud)
从MSDN
当您在 searchPattern 中使用星号通配符(例如“*.txt”)时,指定扩展名中的字符数会影响搜索,如下所示:
当您使用问号通配符时,此方法仅返回与指定文件扩展名匹配的文件。例如,给定目录中的两个文件“file1.txt”和“file1.txtother”,搜索模式“file?.txt”仅返回第一个文件,而搜索模式“file*.txt”返回两个文件。
正如 MSDN 所说,以上是正常行为。
但就你的问题而言,它可能是由文件名约定8.3 filename引起的。禁用它并查看是否得到预期的结果。
fsutil behavior set disable8dot3
Run Code Online (Sandbox Code Playgroud)
也看看这个问题
| 归档时间: |
|
| 查看次数: |
752 次 |
| 最近记录: |