台灣最大程式設計社群網站
線上人數
1509
 
會員總數:241330
討論主題:186904
歡迎您免費加入會員
討論區列表 >> C# >> C# 如何排除隱藏檔
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C# 如何排除隱藏檔
價值 : 30 QP  點閱數:172 回應數:5

樓主

Mark Huang
門外漢
0 3
74 15
發送站內信

我有一個資料夾,裡面的檔名我想放進陣列中
但如果資料正在使用的話
隱藏檔也會被寫進陣列中
能否排除隱藏檔呢?

string[] dirs = Directory.GetFiles(@"D:\test\", "*.xlsm");
Console.WriteLine("The number of files starting with c is {0}.", dirs.Length);
foreach (object dir in dirs)
{
Console.WriteLine(dir);
}




搜尋相關Tags的文章: [ C# 排除隱藏檔 ] ,
本篇文章發表於2017-11-20 16:20
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Jerry
捐贈 VP 給 Jerry 檢舉此回應
修改如下

本篇文章回覆於2017-11-21 11:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

P陳
檢舉此回應
經我測試的結果如下:

?Finfo.attributes
ReadOnly Or Hidden Or Archive {35}
?Finfo.attributes
ReadOnly Or Archive {33}
?Finfo.attributes
Archive {32}
-----------------------
#1 您的程式看起來也可達到要求。

所以請明示題目


本篇文章回覆於2017-11-21 17:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

P陳
檢舉此回應
您的題目如果是要問有沒有正在使用
則是檢查 attributes 中有沒有 "Offline" 字串
本篇文章回覆於2017-11-21 17:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Jerry
捐贈 VP 給 Jerry 檢舉此回應
#2 所以是我回答的不夠完整嗎?
是的話不好意思,下次改進
謝謝你

然後我發現這樣寫法感覺更好,不利用其判斷字串的方式,去做AND運算,更改第6行的if判斷式
如#2所述可以知道
1. Archive {32} (00100000)
2. Hidden Or Archive {34} (00100010)
3. Hidden {2} (00000010)
含有Hidden代表其是隱藏檔案
拿來跟FileAttributes.Hidden做AND運算,如果結果不是FileAttributes.Hidden {2} (00000010),代表不是隱藏檔案

本篇文章回覆於2017-11-21 17:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

P陳
檢舉此回應
原則上我會這樣處理

1.修改如下 再加上 (沒有問題了)或(還有某某問題)
2.將討論串選沒有答案關掉
3.如果有答案將答案PO出來,供後人參考 (如 #4)

本篇文章回覆於2017-11-21 17:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.