Có cách nào dễ dàng để phát hiện xem đĩa có được lắp vào ổ đĩa DVD không? Tôi không quan tâm loại đĩa nào (CD, DVD hoặc Blu-Ray)?Phát hiện xem đĩa có nằm trong ổ đĩa DVD
Trả lời
Sử dụng WMI để phát hiện nếu đĩa trong ổ đĩa CD/DVD:
foreach (var drive in DriveInfo.GetDrives()
.Where(d => d.DriveType == DriveType.CDRom))
MessageBox.Show(drive.Name + " " + drive.IsReady.ToString());
từ here.
DriveType Enumeration có thể giúp bạn loại đĩa:
CDRom
: Các ổ đĩa là một thiết bị đĩa quang, chẳng hạn như một đĩa CD hoặc DVD-ROM.Fixed
: Biến tần là một đĩa cố định.Network
: Biến tần là ổ đĩa mạng.NoRootDirectory
Ổ đĩa không có thư mục gốc.Ram
: Biến tần là ổ đĩa RAM.Removable
: Biến tần là thiết bị lưu trữ di động, chẳng hạn như ổ đĩa mềm hoặc ổ flash USB.Unknown
: Loại ổ đĩa không xác định.
cho loại đĩa CD/DVD/Blue-Ray thấy IMAPI_MEDIA_PHYSICAL_TYPE enumeration:
- UNKNOWN
- CDROM
- CDR
- CDRW
- DVDROM
- DVDRAM
- DVDPLUSR
- DVDPLUSRW
- DVDPLUSR_DUALLAYER
- DVDDASHR
- DVDDASHRW
- DVDDASHR_DUALLAYER
- DISK
- DVDPLUSRW_DUALLAYER
- HDDVDROM
- HDDVDR
- HDDVDRAM
- BDROM
- BDR
- BDRE
- MAX
mã của bạn có thể như thế này:
public bool IsDiscAvailable(int driveNumber)
{
MsftDiscMaster2Class discMaster = new MsftDiscMaster2Class();
string id = discMaster[driveNumber];
MsftDiscRecorder2Class recorder = new MsftDiscRecorder2Class();
recorder.InitializeDiscRecorder(id);
MsftDiscFormat2DataClass dataWriter = new MsftDiscFormat2DataClass();
if (dataWriter.IsRecorderSupported(recorder))
{
dataWriter.Recorder = recorder;
}
else
{
Console.WriteLine("Recorder not supported");
return false;
}
if (dataWriter.IsCurrentMediaSupported(recorder))
{
var media = dataWriter.CurrentPhysicalMediaType;
if (media == IMAPI_MEDIA_PHYSICAL_TYPE.IMAPI_MEDIA_TYPE_UNKNOWN)
{
Console.WriteLine("Unknown media or no disc");
}
else
{
Console.WriteLine("Found disc type {0}", media);
return true;
}
}
else
{
Console.WriteLine("Disc absent or invalid.");
}
return false;
}
từ here.
How to Detect CD-ROM is loaded in the CD-ROM drive
Từ trên liên kết
using System;
using System.Management;
class Application
{
public static void Main()
{
SelectQuery query =
new SelectQuery("select * from win32_logicaldisk where drivetype=5");
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(query);
foreach(ManagementObject mo in searcher.Get())
{
// If both properties are null I suppose there's no CD
if((mo["volumename"] != null) || (mo["volumeserialnumber"] != null))
{
Console.WriteLine("CD is named: {0}", mo["volumename"]);
Console.WriteLine("CD Serial Number: {0}", mo["volumeserialnumber"]);
}
else
{
Console.WriteLine("No CD in Unit");
}
}
// Here to stop app from closing
Console.WriteLine("\nPress Return to exit.");
Console.Read();
}
}
Vì các liên kết hết hạn, chỉ cần cung cấp liên kết không phải là một câu trả lời hay. http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers/8259#8259 – spender
bạn là đúng, nhưng khi một điều đã thoát khỏi lý do tại sao không chúng tôi sử dụng lại nó –
Tôi đã đăng mã ngay bây giờ, sau đó không cần phải bỏ phiếu xuống. –
- 1. Làm cách nào để phát hiện xem có đĩa mềm trong ổ đĩa?
- 2. Có cách nào để phát hiện xem ổ đĩa có phải là ổ SSD không?
- 3. Phát hiện sự kiện gắn ổ đĩa trong C#
- 4. Làm cách nào để phát hiện xem ổ đĩa có thùng rác trong C#?
- 5. OpenCV: Phát hiện các đốm tròn/ổ đĩa Domino
- 6. Phát hiện khi ổ đĩa được lắp trên OS X
- 7. Làm thế nào tôi có thể lấy danh sách tất cả các ổ đĩa mà còn nhận được loại ổ tương ứng (ổ đĩa di động, đĩa cục bộ hoặc đĩa CD-rom, dvd-rom ... vv)?
- 8. Phát hiện hoạt động đĩa trong Delphi
- 9. Làm cách nào để phát hiện xem có ổ đĩa cụ thể nào là ổ cứng không?
- 10. Lập trình kiểm tra xem ký tự ổ đĩa có phải là ổ đĩa mạng/chia sẻ
- 11. Làm thế nào tôi có thể phát hiện khi ổ đĩa flash được cắm trong Linux?
- 12. Lỗi khi lắp ổ đĩa
- 13. Lấy tên ổ đĩa (như trái ngược với ký tự ổ đĩa) trong Java
- 14. Không gian trống trên đĩa DVD/blu-ray trống (IMAPI)
- 15. Đọc và ghi vào đĩa DVD/CD - Java
- 16. IOKhông đủ dung lượng ổ đĩa khi truy cập ổ đĩa gắn Citrix
- 17. Làm thế nào để xác định xem một ổ đĩa là ảo hoặc vật lý
- 18. Ổ đĩa danh sách Haskell trong Windows
- 19. Nhanh chóng phát hiện loại bỏ các ổ đĩa IDE cố định trong Windows XP
- 20. Phân biệt theo chương trình giữa Ổ đĩa mềm USB và Ổ đĩa Flash USB trong Windows
- 21. Làm cách nào để hủy kích hoạt ổ đĩa vật lý LVM2 để tháo ổ đĩa?
- 22. Có thể định dạng thẻ nhớ, ổ đĩa bút hoặc đĩa bằng Java không?
- 23. Tăng dung lượng ổ đĩa thể hiện AWS EC2 ubuntu
- 24. Ổ đĩa thể rắn có đủ tốt để ngăn chặn sự lo lắng về tắc nghẽn ổ đĩa IO không?
- 25. Liệt kê các ổ đĩa ngoài
- 26. script để ánh xạ ổ đĩa mạng
- 27. Tìm mã C# để phát hiện ổ đĩa rời (flash USB)
- 28. Liên kết trực tiếp ổ đĩa Google
- 29. Định dạng ổ đĩa bằng C++
- 30. Lấy danh sách các ổ đĩa logic
http://stackoverflow.com/questions/148742/how-to-detect-if-any-specific-drive-is-a-hard-drive – Musa
Có một cách dễ dàng để tìm câu trả lời bạn tìm kiếm. Nó được gọi là tìm kiếm. Chỉ riêng trang web này có rất nhiều giải pháp được đề xuất. – TheZ
@Musa - Câu hỏi đó không phải là những gì tôi hỏi. Câu hỏi đó là về việc phát hiện nếu một ổ đĩa là một ổ đĩa cdrom hoặc một ổ đĩa cứng. Không liên quan gì đến những gì tôi đang yêu cầu – Icemanind