2010-08-20 35 views

Trả lời

6

Sử dụng GetFileAttributes.

Edit: Bạn cũng có thể kiểm tra SHGetFileInfo

+0

Nhưng làm cách nào để kiểm tra đường dẫn tệp là đĩa? – na1s

+0

Đơn giản, đĩa là đường dẫn kết thúc bằng dấu hai chấm – mmonem

+0

Tôi nghĩ rằng có thể kiểm tra bằng WINAPI – na1s

2

thể thử FindFirstFile:

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

Một khi bạn có dữ liệu find (thông qua như là đối số thứ 2 với chức năng đó):

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

Ngoài ra, để xem nếu một cái gì đó là một khối lượng , có thể thử một cái gì đó như:

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

Thứ khác có thể hữu ích: http://api.farmanager.com/en/winapi/win32_find_data.html [giải thích về cấu trúc WIN32_FIND_DATA]. – cubic1271

+0

Nhưng làm cách nào để kiểm tra đường dẫn tệp là đĩa? – na1s

+0

Xem đường dẫn có ký tự ổ đĩa ở phía trước nó không? Tất cả UNC có dạng "\\ server \ share \ file_path" Không có ký tự ổ đĩa. – JustBoo

1

Xem nếu đường dẫn có một ký tự ổ đĩa phía trước nó? Tất cả UNC có dạng "\\ server \ share \ file_path" Không có ký tự ổ đĩa.

Trong sự tò mò, tôi đã tìm kiếm điều này. Dựa trên bài viết MSDN Naming Files, Paths, and Namespaces này, có vẻ như lời khuyên của tôi là chính xác như thế nào nó nói nó nên được thực hiện.

+0

Lưu ý rằng các ký tự ổ đĩa đôi khi được phép trước đường dẫn UNC: http: //blogs.msdn. com/b/oldnewthing/archive/2005/11/22/495740.aspx –

Các vấn đề liên quan