2 dkdhn dkdhn 于 2015.07.21 14:04 提问

c# System.IO.Directory 问题

远程共享文件有三千个文件夹中(每个文件夹中含近万条子文件夹),检索文件夹的子文件夹中含有ABS字符串的信息。使用的是:Directory.GetDirectories(SRC, "*ABS*", SearchOption.TopDirectoryOnly);方法,但奇怪的问题如图所示:
图片说明
第二条明显不是,却查询了出来。然后更奇怪的是我把这五个文件夹复制到本地,再次同样使用这个方法,没问题,检索出四条。而且将其复制到远程共享文件的其他文件夹下也无问题。所以怀疑和远程共享文件夹的索引有关么?有懂这块的能给解答么?

2个回答

caozhy
caozhy   Ds   Rxr 2015.07.21 14:11
 试试看
string[] absss = Directory.GetDirectories(@"192.168.6.32\di_vol24\US_STD\4000", "*.*", SearchOptions.TopDirectoryOnly).Where(x => x.Contains("ABS")).ToArray();
dkdhn
dkdhn 这样做可以,但是这和我现在使用Directory.GetDirectories获取数组之后再次判断是否Contains("ABS")是一样的。我是想知道为什么会出现这种情况,因为总不能每次都这么写呀。这个方法不应该出现这种问题的,应该有某种原因的。
2 年多之前 回复
wangshubo1989
wangshubo1989   2015.07.21 14:28

试试看
string absss = Directory.GetFileSystemEntries(@"192.168.6.32\di_vol24\US_STD\4000", "*ABS* ", SearchOptions.TopDirectoryOnly)

wangshubo1989
wangshubo1989 回复dkdhn: GetFileSystemEntries进行了重载,有两个参数的方法,也有三个参数的方法。
2 年多之前 回复
dkdhn
dkdhn 首先您的写法有问题,此方法没有三个参数,去掉第三个参数之后,结果和我用的是相同的。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片