31
A
回答
26
調用GetFileAttributes,並檢查FILE_ATTRIBUTE_DIRECTORY屬性。
2
在Windows上,您可以在open handle上使用GetFileAttributes。
85
stat()會告訴你這個。
struct stat s;
if(stat(path,&s) == 0)
{
if(s.st_mode & S_IFDIR)
{
//it's a directory
}
else if(s.st_mode & S_IFREG)
{
//it's a file
}
else
{
//something else
}
}
else
{
//error
}
13
在Win32中,我通常使用PathIsDirectory及其姐妹函數。這適用於Windows 98中,其中GetFileAttributes不(根據MSDN文檔)。
-1
更容易嘗試FileInfo.isDir()在QT
-1
如果您使用CFile
你可以嘗試
CFileStatus status;
if (CFile::GetStatus(fileName, status) && status.m_attribute == 0x10){
//it's directory
}
3
使用C++ 14/C++ 17,您可以使用來自filesystem library的與平臺無關的is_directory()
和is_regular_file()
。
#include <filesystem> // C++17 (or Microsoft-specific implementation in C++14)
std::string pathString = "/my/path";
std::filesystem::path path(pathString); // Construct the path from a string.
if (path.is_directory()) { // Using the non-throwing overload.
// Process a directory.
}
if (path.is_regular_file()) { // Using the non-throwing overload.
// Process a regular file.
}
在C++ 14中使用std::experimental::filesystem
。
#include <experimental/filesystem> // C++14
std::experimental::filesystem::path path(pathString);
在部分File types更多的檢查可用。
相關問題
- 1. 如何判斷URL是本地文件路徑還是遠程文件路徑
- 2. 給定一個路徑名,如何判斷對象是使用Java File API的目錄還是文件?
- 3. 如何確定給定路徑是文件還是文件夾?
- 4. GNU make,如何確定路徑是文件還是目錄?
- 5. 如何判斷字符串是URL還是本地路徑?
- 6. 使用JNotify庫,如何判斷刪除的文件是文件還是目錄?
- 7. 如何判斷封閉路徑是否包含給定點?
- 8. 如何判斷一個文件是否在Linux上給定其路徑的tmpfs?
- 9. 如何判斷給定的值在Java中是float還是double?
- 10. 路徑永遠是文件還是目錄是真的嗎?
- 11. 如何檢查WINAPI文件路徑是磁盤還是文件或目錄?
- 12. Node.js檢查路徑是文件還是目錄
- 13. 如何判斷庫是COM還是DCOM?
- 14. 如何判斷文件是EXE還是DLL?
- 15. 確定路徑是文件還是隻是一個目錄 - 當文件還不存在
- 16. 如何判斷一個文件系統對象是否是一個路徑或目錄
- 17. 如何確定路徑是文件系統還是註冊表?
- 18. Ansible判斷文件目錄
- 19. 如何判斷文件是否包含在目錄中?
- 20. 如果路徑不存在,如何檢查字符串路徑是「文件」還是「目錄」?
- 21. 如何確定路徑是vb6中的文件或目錄?
- 22. 判斷文件是否是FTP服務器上的目錄
- 23. 如何判斷給定的git標籤是註釋還是輕量級的?
- 24. .NET如何檢查路徑是文件而不是目錄?
- 25. 決定路徑是文件還是目錄(該路徑在磁盤上不存在)
- 26. 確定NSString中的路徑是否是目錄或文件?
- 27. jar文件下載位置/如何判斷類路徑是否不正確?
- 28. 如何檢查目錄是文件還是文件夾?
- 29. Golang確定*文件是指向文件還是目錄
- 30. 如何判斷傳遞給函數的參數是對象還是字符串?
如果您需要支持Windows 98,那麼您不能使用此功能。如果您需要Win98支持,請參閱下面有關PathIsDirectory的回答。 – jeffm 2008-09-28 23:29:36