AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Feststellen ob eine Datei unbenutzt ist
Thema durchsuchen
Ansicht
Themen-Optionen

Feststellen ob eine Datei unbenutzt ist

Ein Thema von Helmi · begonnen am 31. Okt 2005 · letzter Beitrag vom 1. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

Feststellen ob eine Datei unbenutzt ist

  Alt 31. Okt 2005, 13:08
Hallo,

wie kann ich feststellen, ob eine Datei, jeglicher Art, unbenutzt ist?

Bei den Schweizern gibt es zwar einen Code, aber ich musste schon feststellen,
dass dieser Code einmal funktioniert und einmal nicht - nicht zuverlässig!

Schweizer-Link
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Feststellen ob eine Datei unbenutzt ist

  Alt 31. Okt 2005, 13:27
Delphi-Quellcode:
function IsFileInUse(const FileName: String): Boolean;
var
  HFileRes : HFILE;
begin
  Result := false;
  if not FileExists(FileName) then exit;
  HFileRes := CreateFile(PChar(FileName), 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;
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Feststellen ob eine Datei unbenutzt ist

  Alt 31. Okt 2005, 13:30
na genau diesen code meinte ich ja, dass der nicht so richtig geht - siehe meinem posting und dem link
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Feststellen ob eine Datei unbenutzt ist

  Alt 31. Okt 2005, 13:32
Der Source funktioniert schon, allerdings wird da nur versucht die Datei exclusiv zu öffnen. Wenn dies durch die bereits geöffnete instanz erlaubt ist komme aber auch kein Fehler.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Feststellen ob eine Datei unbenutzt ist

  Alt 31. Okt 2005, 13:38
Und wenn die andere Instanz das zulässt, dann sollte es für Dich doch kein Problem sein. Die andere Instanz muss ja wissen, was sie macht. Du könntest ihr ja die Datei "unterm Hintern" weglöschen.
Sven Harazim
--
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Feststellen ob eine Datei unbenutzt ist

  Alt 31. Okt 2005, 13:43
Du könntest ja einfach versuchen die File mit vollen schreibzugriffsrechten zu öffnen:
Delphi-Quellcode:
function fileinuse(filename:string):boolean;
var
  f:file;
begin
  result:=true;
  try begin
    assignfile(f,filename);
    filemode:=2;
    reset(f);
    result:=false;
    closefile(f);
  except end;
end;
Michael Enßlin
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Feststellen ob eine Datei unbenutzt ist

  Alt 31. Okt 2005, 13:46
Ich hab festgestellt, dass der Code bei mir ned so richtig funktioniert!

Ich kopiere in meinem Programm eine Datei von einem Rechner in einen Ordner eines anderen Rechners. Bevor ich dies aber mache, prüfe ich ob 1. schon diese Datei auf dem zweiten Rechner vorhanden ist und falls ja dann wird 2. geprüft ob diese Datei unbenutzt ist.
Dies mach ich eben mit dem oben stehenden Code, bzw. mit dem Code von den Schweizern (was ja der gleiche ist).

Ich stelle immer wieder fest, dass die function eine Datei als benutzt meldet, obwohl es aber möglich ist, diese Datei im Windows-Explorer ohne jegliche Probleme zu kopieren, bzw. zu überschreiben.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Feststellen ob eine Datei unbenutzt ist

  Alt 31. Okt 2005, 13:49
schau mal den Code, den ich geschrieben hab. Der überprüft einfach, ob die Datei für den Schreibzugriff geöffnet werden kann, egal an was es jetzt liegt, dass sie nicht geöffnet werden kann, ob sie nicht existiert, geöffnet ist usw...

Delphi-Quellcode:
function fileinuse(filename:string):boolean;
var
  f:file;
begin
  result:=true;
  try begin
    assignfile(f,filename);
    filemode:=2;
    reset(f);
    result:=false;
    closefile(f);
  except end;
end;
Michael Enßlin
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Feststellen ob eine Datei unbenutzt ist

  Alt 31. Okt 2005, 14:04
na ja - ich weiss nicht
die "Prüfung" auf eine Exception zu stützen
ob das so gut ist?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Feststellen ob eine Datei unbenutzt ist

  Alt 31. Okt 2005, 14:06
@Helmi: Dein Source macht doch auch nix anderes. Wenn die Datei nicht exlusiv geöffnet werden konnte wird 0 zurück gegeben was einem Fehler entspricht. Also wird da auch nur versucht ob etwas funktioniert ohne einen Fehler zu werfen
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:27 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