![]() |
Wechseldatenträger erkennen ?
Wie kann man erkennen,
|
Re: Wechseldatenträger erkennen ?
|
Re: Wechseldatenträger erkennen ?
Forum-Suche benutzen :?:
|
Re: Wechseldatenträger erkennen ?
Die ersten beiden Probleme sind nun gelöst, aber wie kann man feststellen, ob man schreiben darf ?
Und zwar ohne eine Dummydatei zu erzeugen und kompatibel zu allen Win32 Versionen. Das Flag FILE_READ_ONLY_VOLUME gibt's erst ab WinXP aufwärts
Delphi-Quellcode:
function GetDriveName(const path:string):string;
begin Result := ExtractFileDrive(path); if Result <> '' then Result := Result+ '\'; end; function IsRemovableDrive(const path:string):Boolean; var vol : string; begin vol := GetDriveName(path); if vol = '' then Result := False else Result := GetDriveType(PChar(vol))=DRIVE_REMOVABLE; end; function IsDriveAvailable(const path:string):Boolean; var vol : string; maxcomplen : DWORD; flags : Cardinal; begin vol := GetDriveName(path); if vol = '' then Result := False else Result := GetVolumeInformation(PChar(vol), nil, 0, nil, maxcomplen, flags, nil, 0); end; // Prüfen, ob ein Volume beschreibbar ist function IsVolumeOK(const path:string):Boolean; begin if IsRemovableDrive(path) then begin Result := IsDriveAvailable(path); while not Result do begin if (MessageDlg('Please insert Disk in Drive '+GetDriveName(path), mtWarning, [mbOK, mbCancel], 0) = mrCancel) then Exit; Result := IsDriveAvailable(path); end; end else Result := IsDriveAvailable(path); end; |
Re: Wechseldatenträger erkennen ?
Die einzig sichere Methode ist und bleibt nunmal das Testen (einfach drauf losschreiben)
Dat Einzige, wo du dir ja schon fast sicher sein kannst, das du da net schreiben kannst, dat sind die CD-Laufwerke. |
Re: Wechseldatenträger erkennen ?
Nico hat gerade gestern Code gepostet wie man unter NTFS genau das rausfinden kann.
|
Re: Wechseldatenträger erkennen ?
Zitat:
Kurz: Es geht nicht anders als durch Probieren (nichts anderes macht zum Beispiel der Datei-Dialog der Shell - dort kann man dies übrigens per Flag deaktivieren (nervt wenn man Dateien erstellen aber nicht löschen kann *g*)). |
Re: Wechseldatenträger erkennen ?
Liste der Anhänge anzeigen (Anzahl: 1)
Danke an alle.
Ich habe nun eine Lösung, die es Wert wäre in die Code-Library aufgenommen zu werden. |
Re: Wechseldatenträger erkennen ?
Hartcodierte Dateinamen für temporäre Dateien sind keine gute Idee (IsWriteable).
Vielleicht solltest Du dir ![]() Zudem macht das Erstellen teilweise Probleme wenn das Limit der Dateianzahl im Wurzelverezeichnis erreicht ist (formatierte Diskette einlegen und in der Konsole (Windows XP mit aktivierten Erweiterungen für die Kommandozeile) '@for /L %i in (0,1,255) do @echo %i && @type nul > A:\TEST%i.TMP' eingeben um die Diskette voll zu bekommen). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz