AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Herausfinden ob Festplatte/Wechselmedium schreibgeschutz hat
Thema durchsuchen
Ansicht
Themen-Optionen

Herausfinden ob Festplatte/Wechselmedium schreibgeschutz hat

Ein Thema von Metal_Snake2 · begonnen am 3. Nov 2007 · letzter Beitrag vom 7. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
Metal_Snake2

Registriert seit: 19. Nov 2004
134 Beiträge
 
Delphi 7 Personal
 
#1

Herausfinden ob Festplatte/Wechselmedium schreibgeschutz hat

  Alt 3. Nov 2007, 20:20
hi,

wie kann ich herausfinden ob eine Festplatte bzw. Wechselmedium(USB Stick) ein schreibschutz hat.
Wenn ich z.B. eine Datei auf einem USB Stick schreibe welches Schreibgeschützt ist erhalte ich eine fehlermeldung.

kann mir bitte jemand weiterhelfen?

danke im voraus.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Herausfinden ob Festplatte/Wechselmedium schreibgeschutz

  Alt 3. Nov 2007, 20:40
Was willst du denn alles abprüfen?

- ob der Datenträger schreibgeschützt ist
- ob die Datei schreibgeschützt ist
- ob der Pfad durch die Rechtevergabe nicht beschreibbar ist
- ob durch das Parent-Directory vererbte Rechte dir das Schreibrecht verweigern
- ob der Account unter dem du läufst dies alles nicht darf
- wenn es mal eine Netzwerkfreigabe ist: ob die Freigabe dir das Schreiben erlaubt
- - "" -: ob es das Dateisystem hinter der Freigabe dir das Schreiben erlaubt
- ob eine Gruppenrichtlinie dir das Schreiben verbietet...

Da kommst du von eins ins Tausende. Deshalb: Versuche zu schreiben und wenn nicht, dann fang den Fehler ab und behandle ihn entsprechend und gebe dem Nutzer eine Meldung aus.
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Herausfinden ob Festplatte/Wechselmedium schreibgeschutz

  Alt 3. Nov 2007, 20:50
z.B.:
Delphi-Quellcode:
const
  sDevice = 'C:\';
  sFileName = sDevice + 'tmp_EZ_%d.txt';
var
  hFile: THandle;
  sTempFileName: string;
begin
  Randomize;
  sTempFileName := Format(sFilename, [Random(High(Integer))]);
  hFile := CreateFile(PAnsiChar(sTempFileName), GENERIC_WRITE, FILE_SHARE_WRITE, nil, OPEN_ALWAYS, 0, 0);
  if (hFile <> INVALID_HANDLE_VALUE) then
  begin
    ShowMessage('Habe schreibrechte..' + sTempFileName);
    CloseHandle(hFile);
    DeleteFile(sTempFileName);
  end else
    ShowMessage('Keine schreibrechte ' + sTempFileName);
.. es geht aber auch einfacher
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#4

Re: Herausfinden ob Festplatte/Wechselmedium schreibgeschutz

  Alt 3. Nov 2007, 22:23
GetDiskFreeSpaceEx ist 0, wenn man das Medium nicht beschreiben kann.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Herausfinden ob Festplatte/Wechselmedium schreibgeschutz

  Alt 3. Nov 2007, 22:24
Zitat von hathor:
GetDiskFreeSpaceEx ist 0, wenn man das Medium nicht beschreiben kann.
Funktioniert afaik aber nicht auf Netzwerklaufwerken.
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#6

Re: Herausfinden ob Festplatte/Wechselmedium schreibgeschutz

  Alt 3. Nov 2007, 22:36
Zitat von Muetze1:
Funktioniert afaik aber nicht auf Netzwerklaufwerken.
Bei mir geht's damit:

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var FreeAvailable, TotalSpace, TotalFree: TLargeinteger;
begin // Get the free drive space
  GetDiskFreeSpaceEx('Z:\', FreeAvailable, TotalSpace, @TotalFree);

  ShowMessage('Drive Z has ' + IntToStr(FreeAvailable div 1024) +
    'Kb of free space');
end;
  Mit Zitat antworten Zitat
Metal_Snake2

Registriert seit: 19. Nov 2004
134 Beiträge
 
Delphi 7 Personal
 
#7

Re: Herausfinden ob Festplatte/Wechselmedium schreibgeschutz

  Alt 4. Nov 2007, 00:08
herzlichen dank an alle antwortenden,

Ihr habt mir weitergeholen!

@ErazerZ: ich hab mal deinen code verwendet, das war genau was ich suchte, nochmal thx!

@Muetze1: Dein Beitrag ist super, ich finds gut das es so umfassendt ist, ich hatte mir ja garnicht gedanken drüber gemacht
welche Ausnahmen es geben könnte! Daher ist deine Antwort inspirierend! Jedoch reicht mir erstmal nur ne einfach abfrage über datei- handles da ich nur Festplatten und Wechselmedien betrachten wollte!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Herausfinden ob Festplatte/Wechselmedium schreibgeschutz

  Alt 4. Nov 2007, 03:02
Zitat von hathor:
Bei mir geht's damit:
Also wenn Z:\ bei dir eine Freigabe ist, schön. Ich habe eine Samba Freigabe auf meinem kleinen Linux System und dort schlägt das genauso fehl wie bei der Angabe einer Win98 Freigabe...
  Mit Zitat antworten Zitat
Gonzo2

Registriert seit: 4. Nov 2007
42 Beiträge
 
#9

Re: Herausfinden ob Festplatte/Wechselmedium schreibgeschutz

  Alt 4. Nov 2007, 05:54
Ein Provisorium! Schreib einfach eine Funktion mit dem Laufwerk als Paramiter und Boolean als Rückgabewert. In der Funktion intergrierst Du paar Zeilen mit denen Du versuchst eine ein Byte große Datei auf dem Laufwerk zu speichern. Überprüfe ob es geklappt hat. Wenn nicht, dann hast Du entweder keine Rechte drauf zu schreiben, das Laufwerk ist schreibgeschützt oder einfach bis auf den letzten Byte voll. Wie auch immer, du weißt ob du dort schreiben kannst. Achja, lösche dann wieder die Testdatei.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Herausfinden ob Festplatte/Wechselmedium schreibgeschutz

  Alt 4. Nov 2007, 15:34
Zitat von Gonzo2:
Ein Provisorium! Schreib einfach eine Funktion mit dem Laufwerk als Paramiter und Boolean als Rückgabewert. In der Funktion intergrierst Du paar Zeilen mit denen Du versuchst eine ein Byte große Datei auf dem Laufwerk zu speichern. Überprüfe ob es geklappt hat. Wenn nicht, dann hast Du entweder keine Rechte drauf zu schreiben, das Laufwerk ist schreibgeschützt oder einfach bis auf den letzten Byte voll. Wie auch immer, du weißt ob du dort schreiben kannst. Achja, lösche dann wieder die Testdatei.
Die Lösung von ErazerZ reicht schon vollkommen aus, denn das Öffnen der Datei zum Schreiben würde schon fehlschlagen. Somit brauchst du erst gar nicht anfangen Daten in ihr zu speichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz