Проверьте, существует ли файл в каталоге, игнорируя расширение - PullRequest
8 голосов
/ 11 апреля 2011

Я использую .NET 2.0 и Linq не может быть и речи. Я хотел бы проверить, существует ли файл в каталоге без знания расширения файла .

Мне просто нужна эта логика.

1.Чек-файл существует в Справочнике с использованием строкового имени файла, предоставленного с использованием шаблона поиска, без расширения файла

2.Получите файлы, если они существуют, и укажите данные для предоставления Download links. Если файл не существует, начните загрузку файла.

Обновление: Directory.GetFiles() и DirectoryInfo.GetFiles() действительно решают ту часть, где я проверяю наличие файлов. Что касается производительности в отношении объектов FileInfo, это было только решением моих требований к привязке данных для предоставления ссылок для скачивания

Ответы [ 3 ]

20 голосов
/ 11 апреля 2011
DirectoryInfo root = new DirectoryInfo("your_directory_path");
FileInfo[] listfiles = root.GetFiles("dummy.*");
if (listfiles.Length > 0)
{
  //File exists
  foreach (FileInfo file in listfiles)
        {
            //Get Filename and link download here
        }
}
else
{
  //File does not exist
  //Upload
}

Надеюсь, что это работает

5 голосов
/ 11 апреля 2011

Чтобы увидеть, существует ли файл с таким именем, вы не можете просто использовать ..

Однако Directory.GetFiles уже содержит полный путь

string [] files = Directory.GetFiles(Path,"name*");
bool exists =  files.Length > 0;

if ( exists)
{
   //Get file info - assuming only one file here..
    FileInfo fi = new FileInfo(files[0]);

    //Or loop through all files
    foreach (string s in files)
    {
         FileInfo fi = new FileInfo(s);
         //Do something with fileinfo
    }
}
2 голосов
/ 11 апреля 2011

Вы можете использовать DirectoryInfo.GetFiles(), чтобы иметь FileInfo[] вместо String[].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...