我想找到d盤裡面所有 "*.pst檔案,類似 windows 下的磁盤搜尋功能,
using system.io;
directory.getfiles(@"d:\", "*.pst", searchoption.alldirectories)
測試環境為win7 提示說 某某目錄沒有通路權限。
獲得檔案屬性 file.getattributes(dir.fullname).tostring()
沒有權限通路的将會有 system 、hidden屬性。
于是想到是否可以通過屬性來過濾這些檔案,是以想到了用遞歸的思想去周遊所有檔案。
還好,在網上居然找到了這個。
using system.collections;
arraylist alist = new
arraylist();
void dirsearch(string
sdir)
{
try
foreach (string d in
directory.getdirectories(sdir))
foreach (string f in directory.getfiles(d,
"*.pst"))
alist.add(f);
}
dirsearch(d);
catch
(system.exception
excpt)
console.writeline(excpt.message);
}
getfiletime("d:\\");
通過遞歸和直接 找所有的檔案,兩者都有異常, 差別在于前者的異常,就抛出某個節點的異常, alist.add(f);
不會執行,(這裡是遞歸循環哦)循環繼續,後者是遇到異常,則指派操作不能執行,傳回null.
也可以通過getattributes 來判斷,原理類似。