2012-07-10 16 views
6

क्या यह पता लगाने का कोई आसान तरीका है कि डीवीडी ड्राइव में डिस्क डाली गई है या नहीं? मुझे परवाह नहीं है कि किस तरह की डिस्क (सीडी, डीवीडी या ब्लू-रे)?डिस्क ड्राइव में डिस्क है

+4

http://stackoverflow.com/questions/148742/how-to-detect-if-any-specific-drive-is-a-hard-drive – Musa

+4

आपके द्वारा प्राप्त किए गए उत्तर को ढूंढने का एक आसान तरीका है। इसे खोज कहा जाता है। अकेले इस साइट पर प्रस्तावित समाधानों की एक बड़ी संख्या है। – TheZ

+0

@ मुसा - वह प्रश्न वह नहीं है जो मैं पूछ रहा हूं। यह सवाल यह पता लगाने के बारे में है कि कोई ड्राइव एक सीडीआरओएम ड्राइव या हार्ड ड्राइव है या नहीं। मैं जो पूछ रहा हूं उसके साथ कुछ भी नहीं करना – Icemanind

उत्तर

12

उपयोग WMI से पता लगाने के लिए अगर सीडी/डीवीडी ड्राइव में डिस्क:

foreach (var drive in DriveInfo.GetDrives() 
           .Where(d => d.DriveType == DriveType.CDRom)) 
MessageBox.Show(drive.Name + " " + drive.IsReady.ToString()); 

here से।

DriveType Enumeration आप मदद कर सकते हैं क्या डिस्क की तरह:

  • CDRom: ड्राइव इस तरह के एक सीडी या डीवीडी-ROM के रूप एक ऑप्टिकल डिस्क डिवाइस, है।
  • Fixed: ड्राइव एक निश्चित डिस्क है।
  • Network: ड्राइव एक नेटवर्क ड्राइव है।
  • NoRootDirectory ड्राइव में रूट निर्देशिका नहीं है।
  • Ram: ड्राइव एक रैम डिस्क है।
  • Removable: ड्राइव एक हटाने योग्य स्टोरेज डिवाइस है, जैसे फ्लॉपी डिस्क ड्राइव या यूएसबी फ्लैश ड्राइव।
  • Unknown: ड्राइव का प्रकार अज्ञात है।

सीडी/डीवीडी की तरह के लिए

/ब्लू-रे IMAPI_MEDIA_PHYSICAL_TYPE enumeration देखें:

  • अज्ञात
  • सीडीरॉम
  • सीडीआर
  • CDRW
  • DVDROM
  • DVDRAM
  • DVDPLUSR
  • DVDPLUSRW
  • DVDPLUSR_DUALLAYER
  • DVDDASHR
  • DVDDASHRW
  • DVDDASHR_DUALLAYER
  • डिस्क
  • DVDPLUSRW_DUALLAYER
  • HDDVDROM
  • HDDVDR
  • HDDVDRAM
  • BDROM
  • बीडीआर
  • BDRE
  • मैक्स

अपने कोड इस तरह हो सकता है:

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; 
} 
here से

1

How to Detect CD-ROM is loaded in the CD-ROM drive

लिंक

ऊपर
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(); 
    } 
} 
+4

क्योंकि लिंक समाप्त हो जाते हैं, बस एक लिंक प्रदान करना एक अच्छा जवाब नहीं है। http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links- कहीं--ally- good-answers/8259#8259 – spender

+0

आप सही हैं, लेकिन जब कोई चीज़ पहले से निकलती है क्यों नहीं हम इसे पुन: उपयोग करते हैं –

+0

मैंने अब कोड पोस्ट किया है, फिर वोट करने की कोई आवश्यकता नहीं है। –

संबंधित मुद्दे