2011-12-15 99 views
0

我在一個項目中工作,我需要知道文件在目錄中是否是唯一的。 那麼如何才能找到一個文件是否存在於一個目錄中? 我有沒有擴展名和目錄路徑的文件名。搜索目錄中的文件

+1

你說的「獨特意思「?爲什麼沒有擴展?你的意思是你想知道是否有文件僅在其擴展中有所不同? – Kevin 2011-12-15 16:18:52

回答

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)); 
} 

這驗證了這是一個「普通」文件。如果你想處理隱藏的文件,你可能想要添加/刪除標誌檢查。

+0

謝謝你這是exactely我需要什麼,但我需要知道只有一件事的參數(路徑=目錄+文件名+擴展名)? – nidhal 2011-12-15 16:24:48

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 

}