FCL应用技巧之------DirectoryInfo.GetFiles()搜索模式存在的问题
来源:互联网 发布:双11淘宝报名入口 编辑:程序博客网 时间:2024/05/29 14:10
1 MSDN上关于DirectoryInfo.GetFiles()搜索模式的说明
先看关于DirectoryInfo.GetFiles()的MSDN文档:
public FileInfo[] GetFiles( string searchPattern, SearchOption searchOption)
在 searchPattern 中使用星号通配符时(例如,“*.txt”),匹配行为会根据指定文件扩展名的长度而有所不同。文件扩展名正好是三个字符的searchPattern 将返回扩展名为三个或更多字符的文件,其中前三个字符与searchPattern 中指定的文件扩展名匹配。文件扩展名为一个、两个或三个以上字符的 searchPattern 仅返回扩展名长度正好与searchPattern 中指定的文件扩展名匹配的文件。使用问号通配符字符时,此方法仅返回与指定文件扩展名匹配的文件。例如,假设目录下有两个文件“file1.txt”和“file1.txtother”,使用“file?.txt”搜索模式时只返回第一个文件,而使用“file*.txt”搜索模式时会同时返回这两个文件。
以下列表显示了 searchPattern 参数的不同长度的行为:
“*.abc”返回扩展名为 .abc、.abcd、.abcde、.abcdef 等的文件。
“*.abcd”只返回扩展名为 .abcd 的文件。
“*.abcde”只返回扩展名为 .abcde 的文件。
“*.abcdef”只返回扩展名为 .abcdef 的文件。
2 实际执行测试
然后执行如下测试代码:
using System;using System.IO;namespace ConsoleApplication2{ class Program { static void Main(string[] args) { DirectoryInfo di = new DirectoryInfo(@"F:\test"); DirectoryInfo di2 = new DirectoryInfo(@"Y:\test"); FileInfo[] fis = di.GetFiles("*.doc", SearchOption.AllDirectories); FileInfo[] fis2 = di2.GetFiles("*.doc", SearchOption.AllDirectories); Console.WriteLine("位于本地硬盘上的文件夹"); foreach (FileInfo fi in fis) { Console.WriteLine(fi.Name); } Console.WriteLine("位于SAMBA服务器上的文件夹"); foreach (FileInfo fi in fis2) { Console.WriteLine(fi.Name); } } }}
注:代码中的两个文件夹"F:\test"与"Y:\test"是内容完全一样的,其中Y是一个映射分区,内容实际是一台samba服务器共享的文件夹,里面是一些Word文档,内容如下:
再看看程序的运行结果:
3 测试结果分析
可见,如果是本地硬盘,那么确实如MSDN所说,*.doc既会匹配.doc也会匹配.docx文档。但是如果目录所在地不是本地硬盘(本例是Linux上的samba共享),那么就只会匹配.doc而不会匹配.docx。
这也说明了MSDN的说法不够准确,至少不全面。希望对大家有所帮助。
- FCL应用技巧之------DirectoryInfo.GetFiles()搜索模式存在的问题
- FCL应用技巧之------如何设置ListView控件中的列头、SubItem单元的颜色
- FCL应用技巧之------使用List<T>的Distinct()去除重复元素
- FCL应用技巧之-----获取本机IP地址
- FCL应用技巧之------实现UDP组播
- C#中FCL迭代器模式的一点问题
- FCL小应用系列-----------如何判断文件是否存在?
- FCL小应用系列-----------分析List的Remove(T)方法
- C#之DirectoryInfo操作
- C#之DirectoryInfo操作
- BIM数据库应用普遍存在的问题
- DirectoryInfo的使用案例
- DirectoryInfo
- FCL
- fcl
- [VB.NET]请教一下如何解决My.Computer.FileSystem.GetFiles终于到的权限问题
- Directory.GetFiles之searchPattern一问
- css 中的小技巧和存在的小问题
- GDB linux单步调试
- 二叉搜索树 c 语言实现
- JAVA之Math类的数学运算应用详解
- poj 2305(指定进制,大数取模)
- tomcat7 源码学习(源码导入eclipse)
- FCL应用技巧之------DirectoryInfo.GetFiles()搜索模式存在的问题
- VS2008+OpenCV配置成功(转)
- Linux CentOs6.5_x64静默安装Oracle10g
- java国际化
- 数据库性能优化之SQL语句优化1
- C++ char* char a[] string叛空
- c语言所有的errno枚举值含义
- Settings修改记录
- java动态显示时间