Trong C# System.IO.DriveInfo
có thuộc tính DriveType
.Loại ổ đĩa nào là "NoRootDirectory" (System.IO.DriveType.NoRootDirectory)?
System.IO.DriveType
là một enum:
public enum DriveType
{
Unknown = 0,
//
// Summary:
// The drive does not have a root directory.
NoRootDirectory = 1,
Removable = 2,
Fixed = 3,
Network = 4,
CDRom = 5,
Ram = 6,
}
tôi nghi ngờ rằng đây là một khối lượng mà không có một ký tự ổ đĩa. Nhưng sử dụng:
System.IO.DriveInfo.GetDrives();
không liệt kê ổ đĩa của tôi không có ký tự ổ đĩa.
Có phải NoRootDirectory
được sử dụng cho bất kỳ loại ổ đĩa/ổ đĩa nào khác hoặc không System.IO.DriveInfo.GetDrives()
không hiển thị chúng?
Tôi biết rằng nó được sử dụng cho các ký tự ổ đĩa chưa được gán. Tất nhiên, bạn sẽ không nhận được chúng thông qua 'GetDrives' nhưng thử' System.IO.DriveInfo mới ("B:"). DriveType' hoặc như vậy. Nó có thể được sử dụng cho các phân vùng chưa định dạng (hoặc hệ thống tập tin không xác định), nhưng tôi không hoàn toàn chắc chắn (bạn sẽ phải kiểm tra xem bạn có được 'Unknown' hoặc' NoRootDirectory' trong trường hợp đó). Để hoàn thành, bạn cũng có thể tạo ổ đĩa rác bằng cách vào 'HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ DOS Devices' và tạo một ổ đĩa' X: 'trỏ tới' \ Device \ Null' chẳng hạn và xem những gì bạn nhận được cho những người. – CherryDT
Trên thực tế, [tài liệu cho hàm WinAPI cơ bản 'GetDriveType'] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364939 (v = vs.85) .aspx) là một chút rõ ràng hơn. Nó nói: "Đường dẫn gốc không hợp lệ, ví dụ, không có ổ đĩa nào được gắn ở đường dẫn được chỉ định." – CherryDT
Tôi sẽ dịch "đường dẫn gốc không hợp lệ" là "Đường dẫn hạt nhân' \ DosDevices \ X: 'không giải quyết/liên kết đến đối tượng thư mục hệ thống tệp hợp lệ có thể giải quyết yêu cầu cho đường dẫn' \ '." - Có lẽ câu được viết bởi ai đó với kiến thức hạt nhân Windows. Trong trường hợp này, tôi giả sử rằng "ổ đĩa rác" của tôi ở trên cũng sẽ cung cấp cho bạn giá trị này, cũng như bất kỳ ký tự ổ đĩa chưa được gán nào. – CherryDT