AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Erkennen ob eine Datei gerade benutzt wird
Thema durchsuchen
Ansicht
Themen-Optionen

Erkennen ob eine Datei gerade benutzt wird

Ein Thema von Dragon27 · begonnen am 14. Jun 2009 · letzter Beitrag vom 17. Jun 2009
Antwort Antwort
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#1

Erkennen ob eine Datei gerade benutzt wird

  Alt 14. Jun 2009, 23:44
Hallo,

ich habe das Problem, dass ich bei mehreren Dateien gleichzeitig Änderungen vornehmen muss. Nun würde
ich gerne irgendwie abfragen, ob die Dateien gerade benutzt werden. Gibt es da vielleicht eine
einfach Funktion die einen Booleanwert zurückgibt?

Danke!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Erkennen ob eine Datei gerade benutzt wird

  Alt 14. Jun 2009, 23:51
Mir würde nur einfallen, ebenso zu versuchen die Datei exklusiv zu öffnen und zu schauen, ob ein Fehler auftritt. Wenn jemand eine Datei nur lesend öffnet, wird dabei natürlich kein Fehler auftreten.

Edit: Die Forensuche lockte mich zu diesem Thread
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Erkennen ob eine Datei gerade benutzt wird

  Alt 17. Jun 2009, 12:41
Versuchs mal damit:

Delphi-Quellcode:
function IsFileInUse(const fName: TFileName): Boolean;
var HFileRes: HFILE;
begin
  if not FileExists(fName) then
  begin
    Result := false;
    Exit;
  end;

  HFileRes := CreateFile(PChar(fName),
                         GENERIC_READ or GENERIC_WRITE,
                         0,
                         nil,
                         OPEN_EXISTING,
                         FILE_ATTRIBUTE_NORMAL,
                         0);
  Result := (HFileRes = INVALID_HANDLE_VALUE);
  if not Result then
    CloseHandle(HFileRes);
end;
Ich weiß, daß ich nichts weiß! Sokrates
  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 22:24 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