AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi DirectoryExists auf eines Wechseldatenträgers

DirectoryExists auf eines Wechseldatenträgers

Ein Thema von GoTo0815 · begonnen am 28. Sep 2009 · letzter Beitrag vom 25. Feb 2010
Antwort Antwort
GoTo0815

Registriert seit: 18. Mai 2004
148 Beiträge
 
Delphi XE2 Professional
 
#1

DirectoryExists auf eines Wechseldatenträgers

  Alt 28. Sep 2009, 14:37
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.473 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: DirectoryExists auf eines Wechseldatenträgers

  Alt 28. Sep 2009, 14:58
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
ScotsMan

Registriert seit: 1. Nov 2006
Ort: Leipzig
13 Beiträge
 
Delphi XE5 Professional
 
#3

Re: DirectoryExists auf eines Wechseldatenträgers

  Alt 25. Feb 2010, 23:12
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;
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
$ route add default roma.it
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf