ShowProgramCode

2022年9月15日 星期四

c# 無須遞迴取得資料夾下包含子目錄的所有檔案

之前我知道取得特定資料夾所有檔案的方式:

//*.*或*代表所有檔案,如果有特定檔名或檔案格式可在此設定
//ex:*.txt
List< string> files = System.IO.Directory.GetFiles(dirPath, "*.*").ToList();

但之後我需要將整個資料夾內所有檔案加密,正在尋找如何取得子目錄的檔案,甚至在考慮如何寫遞迴函式,才找到原來GetFiles就可以取得。

//加入System.IO.SearchOption.AllDirectories即可取得資料夾包含子目錄的檔案
List< string> files = System.IO.Directory.GetFiles(dirPath, "*.*", System.IO.SearchOption.AllDirectories).ToList();

特別記錄下來,以免日後需要時忘記。

2022年9月7日 星期三

c# 讀取中文檔案亂碼

簡言之,使用File.ReadAllLines開啟內容有中文的檔案,內容產生亂碼的處理方式。

原始程式碼:

List< string> csvDiffs = File.ReadAllLines(path).ToList();

更新程式碼:

//Encoding.GetEncoding(950)因.net core簡化會產生錯誤,必須加入此行
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
//將編碼轉為big5
List< string> csvDiffs = File.ReadAllLines(path, Encoding.GetEncoding(950)).ToList();

參考網站:

http://dog0416.blogspot.com/2019/11/c-read-text-file-with-encoding.html