[C#] Media type achterhalen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Tanuki
  • Registratie: Januari 2005
  • Niet online
Ik heb een functie die als argument een driveletter meekrijgt. Bijvoorbeeld M:\.
Ik maak daar een DriveInfo instantie van:
C#:
1
DriveInfo d = new DriveInfo(path);


En als ik dan van d de TotalSize property opvraag, krijg ik de totale grootte van die drive terug. Bij harde schijven gaat dat gewoon goed. Maar als ik dat van een DVD of CD wil opvragen, krijg ik de gebruikte grootte terug en niet de maximale capaciteit.

Ik krijg bij een CD bijvoorbeeld 200 MB terug. Maar ik wil ook op een of andere manier kunnen opvragen dat ie maximaal 700 MB kan zijn.

Eigenlijk wil ik gewoon weten of het een CD / DVD / BluRay / HDDVD / etc. is. Ik dacht dat te doen d.m.v. de DriveType property, maar die is voor zowel CD als DVD (en ik gok ook BluRay en aanverwanten) hetzelfde, namelijk: CDRom. Daar schiet ik dus ook niet zoveel mee op.

Nu heb ik al een hoop gegoogled, maar ik lees eigenlijk alleen maar dat het niet mogelijk is. Vind ik een beetje raar, gezien Windows het het zelf bijvoorbeeld wel kan. Het moet toch op een of andere manier mogelijk zijn?

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als je het native met .Net wilt doen kom je er (denk ik, niet gechecked) niet helemaal. Ik vrees dat je wat API calls zult moeten doen met (bijv.) GetVolumeInformation of eens kijken naar zaken als Win32_PhysicalMedia en Win32_CDROMDrive om bijvoorbeeld te achterhalen of de media writeable is. Maar voordat je dat doet is het wellicht handig om te overwegen of het de moeite wel waard is; als je niet bekend bent met de Win32 API kan het nogal omslachtig lijken (en reken er maar op dat je er dan niet komt met een foo = getSomeInfo("M:\"); maar dat je flinke lappen code krijgt ;) )

[ Voor 22% gewijzigd door RobIII op 02-12-2008 01:28 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik heb het artikel niet helemaal doorgelezen, maar hier staat een artikel om via C# cd's/dvd's/blu-ray's te branden. Er zal dus ook vast wel wat code bij staan om te bepalen wat voor type media er in de drive zit.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”