簡體   English   中英

C#-獲取包含文件特定字符的子文件夾名稱

[英]C# - Get subfolder name that contain specific character of file

我想知道哪個文件夾包含名稱中帶有$文件。
但是如果使用以下代碼,我將得到重復的文件夾名稱:

string local = @"C:\test\";
string[] dirs = Directory.GetFiles(local, "*$*", SearchOption.AllDirectories);
foreach(string dir in dirs)
{
   string a = Path.GetFileName(Path.GetDirectoryName(dir));
}

這是測試文件夾的內容:

  • C:\\測試\\ 20170321 \\ $ 123.txt
  • C:\\測試\\ 20170321 \\ $ 2 4.txt
  • C:\\測試\\ 20170322 \\ 567.txt
  • C:\\測試\\ 20170322 \\的abc.txt

在此處輸入圖片說明

應該只得到結果1 20170321

應該這樣做:

string local = @"C:\test\";
string[] dirs = Directory.GetFiles(local, "*$*", SearchOption.AllDirectories);
List<string> singleDirNames = dirs.Select(x=> Path.GetDirectoryName(x)).Distinct().ToList();

說明:從所有文件名中選擇目錄,然后僅將目錄中不同的值放入列表中

編輯:

正如我剛剛意識到的那樣,您並不需要整個路徑,因此要從帖子中獲取結果,您需要使用Path.GetFileName() (我應該在尋找另一種方式):

List<string> singleDirNames = dirs
                           .Select(x=> Path.GetFileName(Path.GetDirectoryName(x)))
                           .Distinct().ToList();

找到了。 實際上,這是訪問受此答案啟發的包含文件夾的直接方法:

List<string> singleDirNames = dirs.Select(x=> new FileInfo(x).Directory.Name)
                                  .Distinct().ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM