簡體   English   中英

有沒有辦法獲取文件夾中不包括特定文件夾的路徑列表

[英]Is there a way to get a list of paths in a folder excluding specific folders

我正在嘗試編寫一個“自動”創建一個 .gitignore 文件的程序。

我想要實現的是從特定文件夾中獲取路徑列表,其中特定文件(擴展名)不包括特定文件夾。

假設我想在文件夾 (D://Files) 和所有子文件夾 (D://Files/SubFiles) 但不是子文件夾 (D://Files/GroovyBackups) 中找到所有 groovy 文件路徑。

這是我到目前為止。

if (foldersToIgnore.Count == 0)
    folders = Directory.EnumerateFiles(targetFolderPath, "*", SearchOption.AllDirectories).ToList();
else
{
    folders = Directory.EnumerateFiles(targetFolderPath, "*", SearchOption.AllDirectories)
                        .Where(
                            dir =>
                                !foldersToIgnore.Contains(dir)
                                        )
                        .ToList();
}

我認為第一個 if 語句工作正常,但只要我有文件夾我想“忽略”它就不會

EnumerateFiles僅返回文件路徑,而不返回目錄。

您需要檢查每個文件的目錄:

var files = Directory.EnumerateFiles(targetFolderPath, "*", SearchOption.AllDirectories)
    .Where(filePath => !foldersToIgnore.Contains(new FileInfo(filePath).Directory.Name));

您可以使用StringComparer進行不區分大小寫的搜索,例如:

!foldersToIgnore.Contains(new FileInfo(filePath).Directory.Name,
    StringComparer.OrdinalIgnoreCase);

暫無
暫無

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

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