搜索目录中的文件

时间:2011-12-15 16:15:06

标签: c++ visual-c++

我在一个项目中工作,我需要知道一个文件在目录中是否是唯一的。 那么如何才能找到目录中是否存在文件? 我有没有扩展名的文件名和目录的路径。

2 个答案:

答案 0 :(得分:2)

我认为没有现成的功能,但您可以使用以下内容:

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 :(得分:1)

我更喜欢在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

}