AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [Zur Info] FileExists hängt Rechner auf
Thema durchsuchen
Ansicht
Themen-Optionen

[Zur Info] FileExists hängt Rechner auf

Ein Thema von berens · begonnen am 1. Sep 2009 · letzter Beitrag vom 1. Sep 2009
Antwort Antwort
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#1

[Zur Info] FileExists hängt Rechner auf

  Alt 1. Sep 2009, 12:09
Hatte mich eben gewundert, warum mein Programm, das sonst soweit einwandfrei funktioniert, auf einmal komplett hängt und sich selbst über den Taskmanager und Delphi "Ausführen abbrechen (Strg + F2)" nicht mehr beenden lässt. Sogar "Prozess beenden" brachte im Taskmanager nichts mehr.

Ursache des Ganzen: Ich habe mit FileExists einen UNC-Dateipfad prüfen wollen, der aus der Einstellungs-Datei vom Kunden kommt. Dieser verweist auf einen PC/Server, den es bei mir im Netzwerk natürlich nicht gibt. Da Windows aber einen ziemlich hohen TimeOut für diese Überprüfung hat (schon so ~ 2 Minuten) wirkt das Programm wie abgestürzt.

Wer es selbst mal probieren möchte:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  t: string;
begin
  t := 'c:\1.txt';
  ShowMessage(BoolToStr(FileExists(t), True)); // Kein Problem

  t := '\\foobarsample\foo\bar\file1.txt';
  ShowMessage(BoolToStr(FileExists(t), True)); // mind. 2 Minuten warten, dann kommt die Meldung und das Programm reagiert wieder
end;
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

Re: [Zur Info] FileExists hängt Rechner auf

  Alt 1. Sep 2009, 12:23
Das ist keine Problem von Delphi sonder von Windows der Findet die den Server nicht und dann dauert das ca. 2 Min bis Win wieder reagiert.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: [Zur Info] FileExists hängt Rechner auf

  Alt 1. Sep 2009, 13:12
Lösung wäre, das ganze in einen Thread packen und mit MSDN-Library durchsuchenWaitForSingleObject auf dessen Signalisierung zu warten. Wenn dir die zwei Minuten zu lang sind, kannst du auch einen kürzeren Timeout angeben bei WaitForSingleObject.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:17 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