Поиск файла в каталоге - PullRequest
       2

Поиск файла в каталоге

0 голосов
/ 15 декабря 2011

Я работаю в проекте, и мне нужно знать, является ли файл уникальным в каталоге или нет.Итак, как я могу найти, если файл существует в каталоге или нет?У меня есть имя файла без расширения и путь к каталогу.

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Думаю, для этого нет готовой функции, но вы можете использовать что-то вроде этого:

static bool fileExists( const char *path )
{
    const DWORD attr = ::GetFileAttributesA( path );
    return attr != INVALID_FILE_ATTRIBUTES &&
           ( ( attr & FILE_ATTRIBUTE_ARCHIVE ) || ( attr & FILE_ATTRIBUTE_NORMAL ) );
}

Это подтверждает, что это "нормальный" файл. Возможно, вы захотите добавить / убрать проверки флагов, если вы тоже хотите иметь дело со скрытыми файлами.

1 голос
/ 15 декабря 2011

Я предпочитаю делать это способом C ++, но вы упомянули тег Visual-C ++, поэтому есть способ сделать это в Visual-C ++. NET:

using <mscorlib.dll>
using namespace System;
using namespace System::IO;

bool search(String folderPath, String fileName) {
    String* files[] = Directory::GetFiles(folderPath, fileName+".*"); //search the file with the name fileName with any extension (remember, * is a wildcard)
    if(files->getLength() > 0)
        return true; //there are one or more files with this name in this folder
    else
        return false; //there arent any file with this name in this folder

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