[C#] USB read only

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Je kan een usb drive vaak met zo'n knopje op read-only zetten.

Nou ben ik code aan het maken die de status van een usb moet achterhalen (aanwezig, goed filesysteem, read/write enz).

Alles heb ik al, behalve een check of dat de drive readonly is.

Hoe doe je dat in C# ?

Acties:
  • 0 Henk 'm!

  • LoBbY_1
  • Registratie: Juli 2002
  • Laatst online: 26-08 00:13
Controleren wat de grootte van de stick is, vervolgens de vrije ruimte calculeren en een klein bestand proberen te schrijven? Als er ruimte is en je kan niet schrijven zal deze wel readonly zijn?

Een echte golver is nooit uitgeput


Acties:
  • 0 Henk 'm!

Verwijderd

LoBbY_1 schreef op woensdag 19 mei 2010 @ 15:32:
Controleren wat de grootte van de stick is, vervolgens de vrije ruimte calculeren en een klein bestand proberen te schrijven? Als er ruimte is en je kan niet schrijven zal deze wel readonly zijn?
en als het wel kan schrijven kun je een check doen of het ook echt geschreven heeft en daarna het bestand verwijderen ;P

Acties:
  • 0 Henk 'm!

  • Tharulerz
  • Registratie: April 2009
  • Laatst online: 10-04 05:16
Een andere manier kan zijn om Disk utility te gebruiken. Als je zon stick bekijkt met disk utility krijg je iets in de aard van:

Name : USB Flash Disk Media
Type : Disk
Disk Identifier : disk1
Media Name : USB Flash Disk Media
Media Type : Generic
Connection Bus : USB
Connection Type : External
USB Serial Number : xxxxxxxxxxxxxxxxxxx
Partition Type : FDisk_partition_scheme
Locked : Yes
Writable : No
Ejectable : Yes
Mac OS 9 Drivers Installed : No
Location : External
Total Capacity : 126.9 MB (133,038,080 Bytes)
S.M.A.R.T. Status : Not Supported
Disk Number : 1
Partition Number : 0

Let op de 'Locked' en 'Writable'. Waarschijnlijk is er wel een manier om met C# ook die waarden eruit te krijgen (eventueel googlen op c# disk utility locked writable etc), en dat lijkt me meer foolproof dan een bestandje proberen schrijven.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
LoBbY_1 schreef op woensdag 19 mei 2010 @ 15:32:
Controleren wat de grootte van de stick is, vervolgens de vrije ruimte calculeren en een klein bestand proberen te schrijven? Als er ruimte is en je kan niet schrijven zal deze wel readonly zijn?
Hier heb ik natuurlijk ook aan zitten denken, maar de vraag is hoe dat je die file noemt ;)
elke filenaam van "a" tot en met "zzzzzzzzzzzzzzzzzzzz" (en nog meer) kan natuurlijk bezet zijn.

Als je ze allemaal wilt proberen (op ntfs) wens ik je succes, want je mag alle combi's van de 255 UTF-16 code words uittesten :S

Eigenlijk was ik opzoek naar een nette en waterdichte methode.
Ga eens zoeken naar die Disk utility dinges

in WMI heb ik bij de Win32_LogicalDisk een status gevonden, maar deze returns geen enkele waarde.

[ Voor 6% gewijzigd door Verwijderd op 19-05-2010 15:57 . Reden: typo: zieken != zoeken ]


Acties:
  • 0 Henk 'm!

  • Evilbee
  • Registratie: November 2002
  • Laatst online: 18:14
Verwijderd schreef op woensdag 19 mei 2010 @ 15:48:
[...]

Hier heb ik natuurlijk ook aan zitten denken, maar de vraag is hoe dat je die file noemt ;)
elke filenaam van "a" tot en met "zzzzzzzzzzzzzzzzzzzz" (en nog meer) kan natuurlijk bezet zijn.

Als je ze allemaal wilt proberen (op ntfs) wens ik je succes, want je mag alle combi's van de 255 UTF-16 code words uittesten :S

Eigenlijk was ik opzoek naar een nette en waterdichte methode.
Ga eens zoeken naar die Disk utility dinges
Waarom niet een random naam genereren aan de hand van de timestamp oid. En als die al bestaat nieuwe namen blijven genereren tot dat je er een vind die niet bestaat?

Maar de beste oplossing is toch echt die DiskUtilities gebruiken.

LinkedIn - Collega worden?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De vraag blijft alleen staan, hoe dat ik de de read/write eigenschappen van een usb drive uitlees.

Dat DiskUtilities, is dat eigenlijk een windows tool?

Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Ik weet niet hoeveel rechten je hebt op deze pc waar je het op gaat uitvoeren, maar nu kwam ik een VBScriptje op internet tegen die hetzelfde probeert uit te lezen (en aan te passen, maar dat terzijde). Verder heb ik het even uitgepluist, maar het blijkt zo te zijn dat wanneer de volgende sleutel niet aanwezig is, er ook geen preventie wordt toegepast om erna toe te kunnen schrijven:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\StorageDevicePolicies
WriteProtect (DWORD)
Waarbij: 0 - Disabled en 1 - Enabled

Voor het volledige artikel, zie: http://it.toolbox.com/blo...et-usb-to-read-only-11901
Maar de beste oplossing is toch echt die DiskUtilities gebruiken.
Die zal het best ook wel ergens vandaan halen. :)

Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Verwijderd schreef op woensdag 19 mei 2010 @ 15:48:
[...]

Hier heb ik natuurlijk ook aan zitten denken, maar de vraag is hoe dat je die file noemt ;)
elke filenaam van "a" tot en met "zzzzzzzzzzzzzzzzzzzz" (en nog meer) kan natuurlijk bezet zijn.
Gebruik een GUID als filename :?

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
De logische keus is WMI. Daarmee kun je Win32_LogicalDisk.Access ophalen. Die is 1 voor read-only disks.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Verwijderd schreef op woensdag 19 mei 2010 @ 15:48:
[...]

Hier heb ik natuurlijk ook aan zitten denken, maar de vraag is hoe dat je die file noemt ;)
elke filenaam van "a" tot en met "zzzzzzzzzzzzzzzzzzzz" (en nog meer) kan natuurlijk bezet zijn.

Als je ze allemaal wilt proberen (op ntfs) wens ik je succes, want je mag alle combi's van de 255 UTF-16 code words uittesten :S
Lijkt me vijf regels code. Met een beetje random bestandsnaam heb je verdraaid weinig kans op het vinden van een al bestaand bestand.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@MSalters: De omschrijving van die Win32_LogicalDisk.Access is exact zoals ik zoek, maar jammer genoeg returned deze op mijn beide PC's null (unknown).
Pagina: 1