AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Dateien kopieren - Test ob vorhanden, bzw. in Gebrauch
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien kopieren - Test ob vorhanden, bzw. in Gebrauch

Ein Thema von hgiel · begonnen am 4. Jul 2007 · letzter Beitrag vom 4. Jul 2007
Antwort Antwort
hgiel

Registriert seit: 4. Apr 2005
61 Beiträge
 
#1

Dateien kopieren - Test ob vorhanden, bzw. in Gebrauch

  Alt 4. Jul 2007, 11:39
Hallo,

ich habe folgendes Problem:

Ich lese in eine Listbox Dateinamen inkl. Verzeichnis ein und möchte diese Einträge "später" als Basis für einen Kopiervorgang nutzen:

for i:=1 to listbox1.count do
begin
// COD-Datei - gemäß Auswahl - einlesen
// Kopieren der ausgewählten Datei ins TEMP-Verzeichnis
FilePathA := listbox1.items.strings[i-1]; // Pfad der zu kopierenden Datei inkl. Dateiname!
FilePathB := temp_pfad+extractfilename(listbox1.items.strings[i-1]); // Zielpfad inkl Dateiname!

if DirectoryExists(ExtractFileDir(FilePathB)) and not IsFileInUse(FilePathA) then
begin
mem := TMemoryStream.Create;
try
mem.LoadFromFile(filepathA);
mem.SaveToFile(filepathB);
finally
mem.Free;
end;
end;

if fileexists(FilePathB) then // Zieldatei erfolgreich ins TEMP-Verzeichnis kopiert und für Auswertung bereit?
begin
...


Es treten E/A Fehlermeldungen auf bzw. ein Fenster wird angezeigt mit dem Hinweis, dass die Datei nicht (zum kopieren?) geöffnet wurde, wenn das Verzeichnis zwischenzeitlich umbenannt/gelöscht oder die Datei gelöscht wurde!

Meine Frage wie und an welcher Stelle unterdrücke ich diese Hinweisfenster - das Programm soll einfach diese Datei/das Verzeichnis dann einfach NICHT berücksichtigen und mit der nächsten Datei/Verzeichnis fortfahren!

Gruß,

Heinz
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Dateien kopieren - Test ob vorhanden, bzw. in Gebrauch

  Alt 4. Jul 2007, 12:01
Hallo!

Das hängt von Deinem Kopiervorgang ab. Kopierst Du mittels FileStreams oder über BlockRead/Blockwrite?

1. Bei FileStreams schau Dir mal in der Hilfe den Try...Except-Block an.

Hier ein KLEINES Beispiel:
Delphi-Quellcode:
for i := 0 to listbox1.count-1 do BEgin;
try
quelldatei := TFileStream.Create(ListBox.Items[i], fmOpenRead or fmShareDenyNone);
zieldatei := TFileSttream.Create(Zielpfad+ListBox1.Items[i], fmCreate);
zieldatei.copyfrom(quelldatei, quelldatei.size);
except
 // hier z.B. Hinweis in eine Logdatei schreiben daß Fehler aufgetreten
end; {try..except}
end; {for}
Speicher freigeben (quelldatei.free; ...)habe ich mal weggelassen - aber vergiß das nicht

Wenn Du den Fehler noch genauer lokalisieren möchtest dann müsstest Du IMHO entweder den Fehler im Except-Block näher auslesen oder den Try-Except-Block schachteln.


2. Bei Assign(f, ...) und anschließendem BlockRead (...) könnte Dir der Compilterschalter
{$I-} / {$I+} zusammen mit "if ioResult..." weiterhelfen. Ebenfalls in der Hilfe nachschauen

Hoffe Dir einen Anstoß gegeben zu haben...


// EDIT: Habe erst beim 2. mal hinschauen gesehen, daß Du tatsächlich Streams benutzt. Also ignoriere meine 2. Antwort einfach. Ich lasse sie vollständigkeitshalber aber mal stehen...

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
hgiel

Registriert seit: 4. Apr 2005
61 Beiträge
 
#3

Re: Dateien kopieren - Test ob vorhanden, bzw. in Gebrauch

  Alt 4. Jul 2007, 12:54
super vielen Dank - jetzt funktioniert es!
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Dateien kopieren - Test ob vorhanden, bzw. in Gebrauch

  Alt 4. Jul 2007, 16:07
Michael Kübler
  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 17: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