Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DirectoryExists auf eines Wechseldatenträgers (https://www.delphipraxis.net/140894-directoryexists-auf-eines-wechseldatentraegers.html)

GoTo0815 28. Sep 2009 13:37


DirectoryExists auf eines Wechseldatenträgers
 
Hallo,

ich suche in einer Anwendung nach einem speziellen Ordner auf einem USB Stick mittels DirectoryExists.
Dazu lasse ich mir zunächst alle Laufwerksbuchstaben ausgeben. (GetLocalDrives).
Dann prüfe ich mittels GetDriveType auf den Laufwerkstypen.
Wenn der Typ dann 'Removable' ist, prüfe ich mittels DirectoryExists, ob ein Ordner existiert.

Leider werden in die Liste der Removables auch Diskettenlaufwerke und Cardreader aufgenommen.
Sobald dort mittels Directory exists nach einem Ordner gesucht wird, gibt es ne Fehlermeldung durch Windows.

Hat jemand eine Idee, wie ich das umgehen kann?
Kann ich vorher prüfen,ob ich ein DirectoryExists überhaupt durchführen darf, oder gibt es einen ganz andern Weg? (WMI würde ich für die Zwecke ungern benutzen)

Dabke im Voraus

Hendrik

DeddyH 28. Sep 2009 13:58

Re: DirectoryExists auf eines Wechseldatenträgers
 
Klappt es, wenn Du den ErrorMode vorübergehend umstellst?
Delphi-Quellcode:
var ErrMode: DWORD;
begin
  ErrMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    //Dein Code
  finally
    SetErrorMode(ErrMode);
  end;
end;

ScotsMan 25. Feb 2010 22:12

Re: DirectoryExists auf eines Wechseldatenträgers
 
Zitat:

Zitat von DeddyH
Klappt es, wenn Du den ErrorMode vorübergehend umstellst?
Delphi-Quellcode:
var ErrMode: DWORD;
begin
  ErrMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    //Dein Code
  finally
    SetErrorMode(ErrMode);
  end;
end;

:dancer: Coole Idee!

Also, ich habe vor längerer Zeit einen Thread geöffnet, um ein ähnlich gelagertes Problem anzugehen.
Leider nur mit einem Teilerfolg.

Der Vorschlag von DeddyH ist wirklich eine Lösung, erstmal, weil das Wichtigste passiert, was passieren sollte:
Das System wirft keine blöden Fehlermeldungen mehr. (Disclaimer: Blöde Fehlermeldung == Windows wirft einen Fehler (als Bildschirmausgabe), und ich als Programmierer kann es nicht ändern)

Soeben habe ich abgeprüft, daß in meinem einfachen Beispielprogramm keine Fehler mehr kommen - ist ein Datenträger in einem
Wechsellaufwerk drin, wird das Laufwerk angezeigt, ansonsten fehlt es in der Liste. Supi. Ich baue das jetzt mal
in mein Tool ein - mal sehen, ob es klappt. (Damit sich das mal einer vorstellen kann: Ich suche diese Lösung seit JAHREN! (Hab aber mehrheitlich etwas anderes zu tun, als zu programmieren))

Sorry, ich hoffe, es ist erhellend (und nicht forumregelwidrig), wenn ich den älteren Threads mal verlinke...

Mein vormaliger Thread

Ich habe naemlich Stunden gebraucht, um auf die Idee zu kommen, die richtigen Suchbegriffe einzugeben...

Danke sagt
ScotsMan


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 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