67 votes

Comment définir un filtre pour FileSystemWatcher pour plusieurs types de fichiers ?

Partout, je trouve ces deux lignes de code utilisées pour définir le filtre pour l'observateur de système de fichiers dans les échantillons fournis

FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Filter = "*.txt";
//or
watcher.Filter = "*.*";

Mais je veux que mon observateur surveille plus de types de fichiers, mais pas tous. Comment puis-je réaliser cela ?

//watcher.Filter = "*.txt" | "*.doc" | "*.docx" | "*.xls" | "*.xlsx";

J'ai essayé ceux-là :

 watcher.Filter = "*.txt|*.doc|*.docx|*.xls|*.xlsx"; 
 // and
 watcher.Filter = "*.txt;*.doc;*.docx;*.xls;*.xlsx*";

Les deux n'ont pas fonctionné. Ce n'est que l'essentiel, mais cela me manque. Merci

3voto

jdhurst Points 473

Vous pouvez également filtrer en utilisant FileInfo en le comparant à la chaîne de caractères de l'extension que vous recherchez.

Par exemple, le gestionnaire d'un événement de modification de fichier pourrait ressembler à ceci :

void File_Changed(object sender, FileSystemEventArgs e)
{
    FileInfo f = new FileInfo(e.FullPath);

    if (f.Extension.Equals(".jpg") || f.Extension.Equals(".png"))
    {
       //Logic to do whatever it is you're trying to do goes here               
    }
}

0 votes

C'est ce qu'est essentiellement la réponse de Mrchief.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X