Come filtrare i file con GroupDocs.Redaction per .NET
Nell’odierno ambiente digitale in rapida evoluzione, come filtrare i file in modo efficiente può fare la differenza nella tua produttività. Che tu debba isolare i documenti per estensione, data di creazione, dimensione o data di modifica, una solida strategia di filtraggio fa risparmiare tempo, riduce i costi di archiviazione e mantiene pulito l’indice di ricerca. In questo tutorial vedremo esempi pratici usando GroupDocs.Redaction per .NET, mostrandoti esattamente come filtrare i file per soddisfare le comuni esigenze aziendali.
Risposte rapide
- Quale libreria è necessaria? GroupDocs.Redaction per .NET (installare via NuGet).
- Posso filtrare per data di creazione? Sì – usa
CreateCreationTimeRange. - Come escludere determinati tipi? Applica un filtro NOT con
DocumentFilter.CreateNot. - Il filtraggio per dimensione del file è supportato? Assolutamente, tramite
CreateFileLengthRangeo limiti superiori/inferiori. - È necessaria una licenza? È richiesta una licenza di prova o completa per l’uso in produzione.
Cos’è il filtraggio dei file con GroupDocs.Redaction?
Il filtraggio dei file consente di indicare al motore di indicizzazione quali documenti includere o ignorare in base a metadati come estensione, date, pattern di percorso o dimensione. Definendo regole precise di DocumentFilter, mantieni l’indice snello e le ricerche veloci.
Perché usare GroupDocs.Redaction per .NET?
- Helper di filtro integrati – non è necessario scrivere codice personalizzato per il file system.
- Operatori logici – combina più criteri con AND, OR e NOT.
- Ottimizzato per le prestazioni – i filtri vengono applicati durante l’indicizzazione, non dopo.
- Cross‑platform – funziona con .NET Framework, .NET Core e .NET 5/6+.
Prerequisiti
- .NET Framework 4.6+ o .NET Core 3.1+ installato.
- Visual Studio o il tuo IDE C# preferito.
- Conoscenze di base di C#.
Librerie richieste e configurazione
Installa il pacchetto NuGet usando il metodo che preferisci:
dotnet add package GroupDocs.Redaction
Install-Package GroupDocs.Redaction
Suggerimento: Dopo l’installazione, aggiungi il file di licenza nella radice del progetto e chiama
License.SetLicense("license-file-path")prima di creare qualsiasi oggetto Redactor o Index.
Configurare GroupDocs.Redaction per .NET
Per prima cosa, crea un’istanza di Redactor che punti al documento con cui vuoi lavorare:
using GroupDocs.Redaction;
// Initialize Redactor with the path to your document.
Redactor redactor = new Redactor("your-document-path");
Perché è importante: Inizializzare il Redactor garantisce che la libreria sia pronta ad applicare filtri e regole di redazione più avanti nel flusso di lavoro.
Come filtrare i file per estensione
Filtrare per estensione del file è il modo più comune per restringere un insieme di documenti. Di seguito manteniamo solo i file FB2, EPUB e TXT.
Filtra per estensione del file
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);
Come applicare un filtro NOT per escludere tipi indesiderati
Se hai bisogno di applicare la logica del filtro NOT — ad esempio, escludere file HTML e PDF — usa CreateNot.
Escludi file HTM, HTML e 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);
Come filtrare i file per data di creazione
Quando è necessario filtrare per data di creazione, specifica un DateTime di inizio e fine.
Filtra per intervallo di data di creazione
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);
Come filtrare i file per data di modifica
Simile alle date di creazione, puoi limitare i risultati ai file modificati prima di un certo momento.
Filtra per data di modifica
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);
Come filtrare i file per percorso usando espressioni regolari
Se la struttura delle cartelle segue convenzioni di denominazione, una regex può mirare a percorsi specifici.
Filtra per pattern di percorso del file
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);
Come filtrare i file per dimensione
Controllare la dimensione dei documenti è essenziale quando si gestiscono limiti di larghezza di banda o di archiviazione.
Filtra per dimensione del file (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);
Come combinare più condizioni con AND
Quando è necessario filtrare i file usando più criteri contemporaneamente, combinateli con CreateAnd.
Esempio di AND logico
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);
Come combinare più condizioni con OR
Usa CreateOr quando una qualsiasi delle diverse regole deve essere soddisfatta.
Esempio di OR logico
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);
Problemi comuni e soluzioni
- Filtro non applicato: Assicurati di assegnare
settings.DocumentFilterprima di creare l’istanzaIndex. - Appaiono file inattesi: Verifica che le estensioni dei file includano il punto iniziale (
.txt). - Rallentamento delle prestazioni: Combina i filtri con AND per ridurre il numero di file scansionati nelle prime fasi della pipeline di indicizzazione.
- Errori di regex: Escapa i caratteri speciali nel pattern di percorso o usa
RegexOptions.IgnoreCaseper corrispondenze senza distinzione tra maiuscole e minuscole.
Domande frequenti
Q: Posso combinare un filtro NOT con un filtro AND?
A: Sì. Costruisci prima il filtro NOT (DocumentFilter.CreateNot) e poi includilo come uno degli argomenti di DocumentFilter.CreateAnd.
Q: Come filtro i file più grandi di 10 MB?
A: Usa DocumentFilter.CreateFileLengthLowerBound(10 * 1024 * 1024) per includere solo i file che superano quella dimensione.
Q: È possibile filtrare sia per data di creazione sia per data di modifica simultaneamente?
A: Assolutamente. Crea ogni filtro separatamente e combinateli con CreateAnd.
Q: Questi filtri funzionano con percorsi di archiviazione cloud?
A: I filtri operano sul file system locale. Per le fonti cloud, scarica i file in una cartella temporanea prima, quindi applica gli stessi filtri.
Q: Modificare il filtro richiederà una re‑indicizzazione?
A: Sì. I filtri vengono valutati quando chiami index.Add. Cambiare un filtro significa che devi ricostruire l’indice per riflettere i nuovi criteri.
Conclusione
Padroneggiando come filtrare i file con GroupDocs.Redaction per .NET — sia per estensione, data di creazione, data di modifica, dimensione del file o usando la logica NOT — puoi ottimizzare la gestione dei documenti, mantenere gli indici performanti e concentrarti sul contenuto che conta davvero. Sperimenta con gli operatori logici per adattare il filtraggio alle tue regole aziendali precise, e vedrai guadagni immediati in velocità ed efficienza di archiviazione.
Ultimo aggiornamento: 2026-04-21
Testato con: GroupDocs.Redaction 24.11 for .NET
Autore: GroupDocs