AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Status einer Datei überprüfen

Ein Thema von michi101200 · begonnen am 24. Apr 2008 · letzter Beitrag vom 24. Apr 2008
Antwort Antwort
michi101200

Registriert seit: 24. Apr 2008
Ort: Ahaus
19 Beiträge
 
Delphi 6 Professional
 
#1

Status einer Datei überprüfen

  Alt 24. Apr 2008, 08:37
Hallo,

wir kann ich herausfinden ob eine Datei noch kopiert wird?

Beispiel:
Wenn man eine 5GB Datei in einem Ordner kopiert (der Kopiervorgang geschieht nicht über die Applikation) dann dauert das ja ein bisschen
Wie kann ich dann überprüfen ob der Kopiervorgang schon beendet ist bzw. ob man auf die Datei Zugriff hat.

Die Überprüfung muss höchstwahrscheinlich über die API geschehen.

Ich hab schon mit FindFirstChangeNotification getestet aber das klappt nicht so wie ich das will

PS:
Sorry für den komischen Titel hab aber leider nichts passenderes gefunden
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Status einer Datei überprüfen

  Alt 24. Apr 2008, 08:44
Zitat von michi101200:
Sorry für den komischen Titel hab aber leider nichts passenderes gefunden
Wie wäre es mit: "Rausfinden wann eine Datei fertig kopiert wurde"

Und was hat mit FindFirstChangeNotification nicht funktioniert?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
michi101200

Registriert seit: 24. Apr 2008
Ort: Ahaus
19 Beiträge
 
Delphi 6 Professional
 
#3

Re: Status einer Datei überprüfen

  Alt 24. Apr 2008, 08:54
Wenn sich keine Datei in dem Ordner befindet, wird gesagt das eine drin ist

Hier ist mein Versuch:
Delphi-Quellcode:
  mHandle := FindFirstChangeNotification(PChar('E:\temp'),
        False,(FILE_ACTION_ADDED) and (not FILE_ACTION_REMOVED));
  if (mHandle = INVALID_HANDLE_VALUE) then begin
    exit;
  end;
  If WaitForSingleObject(Handle, 500) = WAIT_OBJECT_0 Then begin
    if (FindNextChangeNotification(mHandle)) then begin
      ShowMessage('Objekt ist vorhanden');
    end else begin
      ShowMessage('Objekt ist nicht vorhanden');
    end;
  end;
  FindCloseChangeNotification(mHandle);
Wie gesagt wenn keine Datei drin ist, dann kommt die Meldung Objekt ist vorhanden.

Aber ich muss auch ehrlich sagen, dass ich das ganze noch nicht recht verstehe.
Denn es ist auch die Frage wie ich den Dateiname bekomme.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Status einer Datei überprüfen

  Alt 24. Apr 2008, 09:00
Ich würde einfach versuchen, die Datei exklusiv zu öffnen. Ist das nicht möglich, ist sie wahrscheinlich noch im externen Zugriff.
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
michi101200

Registriert seit: 24. Apr 2008
Ort: Ahaus
19 Beiträge
 
Delphi 6 Professional
 
#5

Re: Status einer Datei überprüfen

  Alt 24. Apr 2008, 09:08
Das Problem ist wenn ich eine 5GB Datei habe und die vorher versuche exklusiv zu öffnen, dann dauert das doch lange und verbraucht viel Performance
  Mit Zitat antworten Zitat
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#6

Re: Status einer Datei überprüfen

  Alt 24. Apr 2008, 09:11
hi,

ich glaub hier im forum gibt es ne funktion 'IsFileInUse' oder so ...

vllt. wär die was

cya
  Mit Zitat antworten Zitat
michi101200

Registriert seit: 24. Apr 2008
Ort: Ahaus
19 Beiträge
 
Delphi 6 Professional
 
#7

Re: Status einer Datei überprüfen

  Alt 24. Apr 2008, 09:18
Zitat:
ich glaub hier im forum gibt es ne funktion 'IsFileInUse' oder so ...
Das Problem ist das die Funktion bzw. ähnliche immer die Datei vorher exklusiv öffnen.

Gibt es denn evtl. eine andere Möglichkeit ohne dass man die vorher öffnen muss?
Wie gesagt kann sich dabei auch um eine 5GB Datei handeln und das muss "schnell" gehen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Status einer Datei überprüfen

  Alt 24. Apr 2008, 09:35
Schau Dir mal die FileFlags von CreateFile an. Man muss ja nicht die komplette Datei puffern.
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
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: Status einer Datei überprüfen

  Alt 24. Apr 2008, 10:09
Zitat von michi101200:
Das Problem ist wenn ich eine 5GB Datei habe und die vorher versuche exklusiv zu öffnen, dann dauert das doch lange und verbraucht viel Performance
Irrtum, das Öffnen einer Datei geht recht schnell; erst das Lesen grösserer Datenblöcke aus der Datei würde Zeit brauchen.
Andreas
  Mit Zitat antworten Zitat
michi101200

Registriert seit: 24. Apr 2008
Ort: Ahaus
19 Beiträge
 
Delphi 6 Professional
 
#10

Re: Status einer Datei überprüfen

  Alt 24. Apr 2008, 10:28
Zitat:
Schau Dir mal die FileFlags von CreateFile an.
Danke für den Tipp.

Zitat:
Irrtum, das Öffnen einer Datei geht recht schnell
Danke, klingt sogar logischer
  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 06:01 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