2010-08-20 135 views

回答

6

使用GetFileAttributes

編輯:您還可以檢查SHGetFileInfo

+0

但是如何檢查文件路徑是磁盤? – na1s 2010-08-20 08:37:51

+0

簡而言之,磁盤是以冒號結尾的路徑 – mmonem 2010-08-20 08:56:07

+0

我認爲可以通過WINAPI – na1s 2010-08-20 08:57:28

2

可以試試用FindFirstFile:

http://msdn.microsoft.com/en-us/library/aa364418%28v=VS.85%29.aspx

一旦你的查找數據(作爲第二參數傳遞給函數傳遞):

if(result->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
{ 
    //file is a directory 
} 
else 
{ 
    //file is not a directory 
} 

另外,要看看是否有一個音量,可以嘗試類似於:

if(result->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) 
{ 
    if(result->dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT) 
    { 
     //path is a volume; try using GetVolumeNameForVolumeMountPoint for info 
    } 
} 

HTH

+0

其他可能有用的東西:http://api.farmanager.com/en/winapi/win32_find_data.html [WIN32_FIND_DATA結構的解釋]。 – cubic1271 2010-08-20 08:29:44

+0

但是如何檢查文件路徑是磁盤? – na1s 2010-08-20 08:32:32

+0

查看路徑前面是否有驅動器號?所有的UNC採用「\\ server \ share \ file_path」的形式沒有驅動器號。 – JustBoo 2010-08-20 15:58:13

1

查看是否路徑具有在它前面的一個驅動器號?所有的UNC採用「\\ server \ share \ file_path」的形式沒有驅動器號。

出於好奇,我查了一下。基於這個MSDN文章Naming Files, Paths, and Namespaces,似乎我的建議是完全如何表示它應該完成。

+0

請注意,在UNC路徑之前有時允許使用驅動器號:http://blogs.msdn。 COM/b/oldnewthing /存檔/ 2005/11 /第22/495740.aspx – 2013-08-18 16:16:34

相關問題