49 votes

Comment trouver le fichier par son nom partiel ?

Comment puis-je obtenir le nom de fichier complet ?

Par exemple:

J'ai un fichier nommé 171_s.jpg qui est stocké sur le disque dur.

Je dois trouver le fichier par son nom partiel, c'est-à-dire 171_s , et obtenir le nom complet.

Comment puis-je implémenter cela?

89voto

Morten Nørgaard Points 1217

Voici un exemple utilisant GetFiles() :

 static void Main(string[] args)
{
    string partialName = "171_s";
    DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(@"c:\");
    FileInfo[] filesInDir = hdDirectoryInWhichToSearch.GetFiles("*" + partialName + "*.*");

    foreach (FileInfo foundFile in filesInDir)
    {
        string fullName = foundFile.FullName;
        Console.WriteLine(fullName);
    }    
}

19voto

Jay Points 146

Mise à jour - La réponse Jakub est un moyen plus efficace de le faire. c'est-à-dire, utilisez System.IO.Directory.GetFiles() http://msdn.microsoft.com/en-us/library/ms143316.aspx

La réponse a déjà été postée, cependant pour une compréhension facile voici le code

 string folderPath = @"C:/Temp/";
DirectoryInfo dir= new DirectoryInfo(folderPath);
FileInfo[] files = dir.GetFiles("171_s*", SearchOption.TopDirectoryOnly);
foreach (var item in files)
{
    // do something here
}

3voto

gaurawerma Points 1796

Vous pouvez le faire comme ceci :

 ....

List<string> _filesNames;

foreach(var file in _directory)
{
    string name = GetFileName(file);
    if(name.IndexOf(_partialFileName) > 0)
    {
      _fileNames.Add(name);   
    }
}
....

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