如何使用 GroupDocs.Redaction for .NET 篩選檔案

在當今快速變化的數位環境中,如何篩選檔案可能會左右您的工作效率。無論您需要依檔案副檔名、建立日期、大小或修改日期來分離文件,完善的篩選策略都能節省時間、降低儲存成本,並保持搜尋索引的整潔。在本教學中,我們將透過使用 GroupDocs.Redaction for .NET 的實務範例,向您展示如何精確篩選檔案以滿足常見的商業需求。

快速解答

  • 需要什麼函式庫? GroupDocs.Redaction for .NET (install via NuGet).
  • 可以依建立日期篩選嗎? Yes – use CreateCreationTimeRange.
  • 如何排除特定類型? Apply a NOT filter with DocumentFilter.CreateNot.
  • 支援檔案大小篩選嗎? Absolutely, via CreateFileLengthRange or upper/lower bounds.
  • 需要授權嗎? A trial or full license is required for production use.

使用 GroupDocs.Redaction 進行檔案篩選是什麼?

檔案篩選讓您告訴索引引擎根據副檔名、日期、路徑模式或大小等中繼資料,哪些文件要納入或忽略。透過定義精確的 DocumentFilter 規則,您可以保持索引精簡,搜尋速度更快。

為什麼要使用 GroupDocs.Redaction for .NET?

  • 內建篩選輔助工具 – no need to write custom file‑system code.
  • 邏輯運算子 – combine multiple criteria with AND, OR, and NOT.
  • 效能最佳化 – filters are applied during indexing, not after.
  • 跨平台 – works with .NET Framework, .NET Core, and .NET 5/6+.

前置條件

  • .NET Framework 4.6+ 或 .NET Core 3.1+ 已安裝。
  • Visual Studio 或您偏好的 C# IDE。
  • 基本的 C# 知識。

必要的函式庫與設定

使用您偏好的方式安裝 NuGet 套件:

dotnet add package GroupDocs.Redaction
Install-Package GroupDocs.Redaction

專業提示: 安裝完成後,將授權檔案加入專案根目錄,並在建立任何 Redactor 或 Index 物件之前呼叫 License.SetLicense("license-file-path")。

設定 GroupDocs.Redaction for .NET

首先,建立一個指向您想要處理的文件的 Redactor 實例:

using GroupDocs.Redaction;
// Initialize Redactor with the path to your document.
Redactor redactor = new Redactor("your-document-path");

為什麼這很重要: 初始化 Redactor 可確保函式庫已準備好在後續工作流程中套用篩選與遮蔽規則。

如何依副檔名篩選檔案

依副檔名篩選是縮小文件集合最常見的方式。以下範例僅保留 FB2、EPUB 與 TXT 檔案。

依副檔名篩選

using GroupDocs.Search;
using GroupDocs.Search.Options;

string indexFolder = "YOUR_OUTPUT_DIRECTORY";
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

IndexSettings settings = new IndexSettings();
// Allow only FB2, EPUB, and TXT files.
DocumentFilter filter = DocumentFilter.CreateFileExtension(".fb2", ".epub", ".txt");
settings.DocumentFilter = filter;

// Create an index with applied filters.
Index index = new Index(indexFolder, settings);
index.Add(documentsFolder);

如何套用 NOT 篩選以排除不需要的類型

如果您需要套用 NOT 篩選邏輯,例如排除 HTML 與 PDF 檔案,請使用 CreateNot。

排除 HTM、HTML 與 PDF 檔案

using GroupDocs.Search;
using GroupDocs.Search.Options;

string indexFolder = "YOUR_OUTPUT_DIRECTORY";
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

IndexSettings settings = new IndexSettings();
DocumentFilter excludeFilter = DocumentFilter.CreateFileExtension(".htm", ".html", ".pdf");
DocumentFilter invertedFilter = DocumentFilter.CreateNot(excludeFilter);
settings.DocumentFilter = invertedFilter;

Index index = new Index(indexFolder, settings);
index.Add(documentsFolder);

如何依建立日期篩選檔案

當您需要依建立日期篩選時,請指定起始與結束的 DateTime。

依建立日期範圍篩選

using GroupDocs.Search;
using GroupDocs.Search.Options;
using System;

string indexFolder = "YOUR_OUTPUT_DIRECTORY";
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

IndexSettings settings = new IndexSettings();
DocumentFilter filter = DocumentFilter.CreateCreationTimeRange(new DateTime(2017, 1, 1), new DateTime(2018, 6, 15));
settings.DocumentFilter = filter;

Index index = new Index(indexFolder, settings);
index.Add(documentsFolder);

如何依修改日期篩選檔案

與建立日期類似,您可以將結果限制為在特定時間點之前被修改的檔案。

依修改日期篩選

using GroupDocs.Search;
using GroupDocs.Search.Options;
using System;

string indexFolder = "YOUR_OUTPUT_DIRECTORY";
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

IndexSettings settings = new IndexSettings();
DocumentFilter filter = DocumentFilter.CreateModificationTimeUpperBound(new DateTime(2018, 6, 15));
settings.DocumentFilter = filter;

Index index = new Index(indexFolder, settings);
index.Add(documentsFolder);

如何使用正規表達式依路徑篩選檔案

如果您的資料夾結構遵循命名慣例,正規表達式可用於定位特定路徑。

依檔案路徑模式篩選

using GroupDocs.Search;
using GroupDocs.Search.Options;
using System.Text.RegularExpressions;

string indexFolder = "YOUR_OUTPUT_DIRECTORY";
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

IndexSettings settings = new IndexSettings();
DocumentFilter filter = DocumentFilter.CreateFilePathRegularExpression("Ipsum", RegexOptions.IgnoreCase);
settings.DocumentFilter = filter;

Index index = new Index(indexFolder, settings);
index.Add(documentsFolder);

如何依檔案大小篩選

在處理頻寬或儲存空間限制時,控制文件大小是必須的。

依檔案大小篩選(50 KB – 100 KB)

using GroupDocs.Search;
using GroupDocs.Search.Options;

string indexFolder = "YOUR_OUTPUT_DIRECTORY";
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

IndexSettings settings = new IndexSettings();
DocumentFilter filter = DocumentFilter.CreateFileLengthRange(50 * 1024, 100 * 1024);
settings.DocumentFilter = filter;

Index index = new Index(indexFolder, settings);
index.Add(documentsFolder);

如何使用 AND 結合多個條件

當您需要一次使用多個條件篩選檔案時,請使用 CreateAnd 結合它們。

AND 邏輯範例

using GroupDocs.Search;
using GroupDocs.Search.Options;
using System;

string indexFolder = "YOUR_OUTPUT_DIRECTORY";
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

IndexSettings settings = new IndexSettings();
DocumentFilter filter1 = DocumentFilter.CreateCreationTimeRange(new DateTime(2015, 1, 1), new DateTime(2016, 1, 1));
DocumentFilter filter2 = DocumentFilter.CreateFileExtension(".txt");
DocumentFilter filter3 = DocumentFilter.CreateFileLengthUpperBound(8 * 1024 * 1024);
DocumentFilter finalFilter = DocumentFilter.CreateAnd(filter1, filter2, filter3);
settings.DocumentFilter = finalFilter;

Index index = new Index(indexFolder, settings);
index.Add(documentsFolder);

如何使用 OR 結合多個條件

當任一規則符合時,使用 CreateOr。

OR 邏輯範例

using GroupDocs.Search;
using GroupDocs.Search.Options;

string indexFolder = "YOUR_OUTPUT_DIRECTORY";
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

IndexSettings settings = new IndexSettings();
DocumentFilter txtFilter = DocumentFilter.CreateFileExtension(".txt");
DocumentFilter notTxtFilter = DocumentFilter.CreateNot(txtFilter);
DocumentFilter bound5Filter = DocumentFilter.CreateFileLengthUpperBound(5 * 1024 * 1024);
DocumentFilter bound10Filter = DocumentFilter.CreateFileLengthUpperBound(10 * 1024 * 1024);
DocumentFilter txtSizeFilter = DocumentFilter.CreateOr(txtFilter, notTxtFilter, bound5Filter, bound10Filter);
settings.DocumentFilter = txtSizeFilter;

Index index = new Index(indexFolder, settings);
index.Add(documentsFolder);

常見問題與解決方案

  • 篩選未套用: 確保在建立 Index 實例之前 先 指定 settings.DocumentFilter。
  • 出現未預期的檔案: 再次確認檔案副檔名包含前置的點 (.txt)。
  • 效能下降: 使用 AND 結合篩選,以減少在索引流程早期掃描的檔案數量。
  • 正規表達式錯誤: 在路徑模式中跳脫特殊字元,或使用 RegexOptions.IgnoreCase 以進行不區分大小寫的比對。

常見問答

Q: 可以將 NOT 篩選與 AND 篩選結合嗎?
A: 可以。先建立 NOT 篩選 (DocumentFilter.CreateNot),再將其作為 DocumentFilter.CreateAnd 的其中一個參數。

Q: 如何篩選大於 10 MB 的檔案?
A: 使用 DocumentFilter.CreateFileLengthLowerBound(10 * 1024 * 1024) 只包含超過該大小的檔案。

Q: 能同時依建立日期與修改日期篩選嗎?
A: 當然可以。分別建立每個篩選,然後使用 CreateAnd 結合它們。

Q: 這些篩選能用於雲端儲存路徑嗎?
A: 這些篩選在本機檔案系統上運作。若是雲端來源,請先將檔案下載至暫存資料夾,再套用相同的篩選。

Q: 更改篩選需要重新索引嗎?
A: 需要。篩選會在呼叫 index.Add 時評估。變更篩選意味著必須重新建構索引,以反映新的條件。

結論

掌握使用 GroupDocs.Redaction for .NET 篩選檔案 的技巧——無論是依副檔名、建立日期、修改日期、檔案大小,或是使用 NOT 邏輯——都能簡化文件管理,保持索引效能,並專注於真正重要的內容。嘗試運用邏輯運算子,將篩選調整至符合您的業務規則,您將立即感受到速度與儲存效率的提升。


最後更新: 2026-04-21
測試版本: GroupDocs.Redaction 24.11 for .NET
作者: GroupDocs