Autor Beitrag
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 24.07.04 13:28 
Hi!
Kurze Fräge: Wenn ich eine datei mit Copyfile bewege, dann bleibt sie irgendwie immer noch bis zum Beenden meines Programmes gesperrt, kann also von außen nicht gelöscht werden (->"Datei wird von einem anderen Benutzer/Programm verwendet").
Kann ich Windows irgendwie verständlich machen, dass ich die Datei wirklich nur kopieren wollte und jetzt nichts mehr damit zu tun haben will?
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 24.07.04 14:00 
Rein pauschal würde ich tippen, dass du die Datei nicht geschlossen hast. Nachdem du dies mit
ausblenden Delphi-Quelltext
1:
CloseFile(DeineDatei);					

getan hast, solltest du sie in Windows wieder normal verwenden können.
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 24.07.04 14:17 
CloseFile ist ja für die Verwendung mit Dateivariablen gedacht.
Copyfile ist aber ein API-Befehlfunction CopyFile(lpExistingFileName, lpNewFileName: PChar; bFailIfExists: BOOL): BOOL;der direkt zwei Pfade als Parameter nimmt. Eine File-Variable oder ein Handle zum Schließen habe ich ja dadurch gar nicht erst.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 25.07.04 05:09 
Dann mach's doch einfach mit Streams:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure CopyFile(Src, Dest:String);
var
  SourceFile, DestFile:TFileStream;
begin
  DestFile := TFileStream.Create(Dest, fmCreate);
  try
    SourceFile := TFileStream.Create(Src, fmOpenRead or fmShareDenyWrite);
    try
      DestFile.CopyFrom(SourceFile, 0);
    finally
      SourceFile.Free;
    end;
  finally
    DestFile.Free;
  end;
end;


Wenn du eine Function brauchst, einfach ne Try-Except rund rum und im Except-Teil Result auf False, ansonsten als letzt Anweisung vor dem except auf True setzen.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.