Referenz - FILECOPY
Syntax: FILECOPY ( Quelle, Ziel )
Typ: Funktion
Kategorie: Dateien
FILECOPY kopiert die Datei 'Quelle' nach 'Ziel'. Diese Funktion entspricht der VB-Funktion FILECOPY.
Anmerkung:
Um diese Funktion nutzen zu können, muss die Datei file.bi in Ihren Quellcode eingebunden werden, z. B. mit INCLUDE. Alternativ können Sie auch die Datei vbcompat.bi einbinden, da diese die file.bi automatisch in Ihr Programm lädt.
- 'Quelle' ist ein STRING, der den Dateinamen der zu kopierenden Datei enthält. Diese Angabe darf eine Pfadangabe enthalten. Wird kein Pfad angegeben, so nimmt FreeBASIC an, dass sich die Datei im aktuellen Arbeitsverzeichnis befindet (siehe CURDIR).
- 'Ziel' ist ein STRING, der den Dateinamen enthält, den die Kopie erhalten soll. Diese Angabe darf eine Pfadangabe enthalten. Wird kein Pfad angegeben, so nimmt FreeBASIC an, dass sich die Datei im aktuellen Arbeitsverzeichnis befindet. Sind 'Quelle' und 'Ziel' identisch, so wird nichts kopiert.
Der Rückgabewert ist entweder 0, wenn der Kopiervorgang erfolgreich abgeschlossen wurde, oder 1, wenn ein Fehler aufgetreten ist. Mögliche Fehler sind:
- Die Datei in 'Quelle' existiert nicht.
- 'Ziel' und 'Quelle' sind identisch.
- Als 'Quelle' oder 'Ziel' wird ein unzulässiger Dateiname angegeben. Ein unzulässiger Dateiname enthält Zeichen wie \/|:<>*? oder ".
- Die Pfadangabe in 'Quelle' oder 'Ziel' existiert nicht.
Achtung: Existierende Dateien werden ohne Nachfrage überschrieben!
Beispiel:
Achtung: Dieses Beispiel erstellt selbständig die Dateien 'Src.txt" und 'Dst.txt' in 'C:\TMP\' sowie 'Dst.txt' in 'C:\'. Diese Dateien werden nach Programmende automatisch gelöscht. Passen Sie das Programm an, wenn sich in Ihrem Dateisystem in diesem Verzeichnis schon Daten mit den angegebenen Namen befinden, da diese sonst überschrieben werden. Wenn in Ihrem Dateisystem ein Ordner 'C:\TMP\' existiert, dieser aber keine Dateien 'Src.txt' oder 'Dst.txt' enthält, können Sie dieses Beispiel ohne Problem ausführen, da andere Daten nicht beeinflusst werden. Das Verzeichnis 'C:\TMP\' wird automatisch erstellt, wenn es noch nicht existiert, und automatisch aus dem System entfernt, wenn sich keine Daten darin befinden.
#INCLUDE "file.bi" ' Die Dateifunktionen aktivieren
CHDIR "C:\" ' In das Verzeichnis C:\ wechseln
MKDIR "TMP" ' Ein temporäres Verzeichnis anlegen
' Eine Datei erstellen und...
OPEN "TMP\Src.txt" FOR OUTPUT AS #1
' ...mit Text befüllen:
PRINT #1, "Source-File"
CLOSE #1
IF FILECOPY("TMP\Src.txt", "TMP\Dst.txt") THEN
PRINT "Fehler beim Kopieren von TMP\Src.txt nach TMP\Dst.txt."
ELSE
PRINT "C:\TMP\Src.txt nach C:\TMP\Dst.txt kopiert."
END IF
IF FILECOPY("C:\TMP\Src.txt", "Dst.txt") THEN
PRINT "Fehler beim Kopieren von C:\TMP\Src.txt nach C:\Dst.txt."
ELSE
PRINT "C:\TMP\Src.txt nach C:\Dst.txt kopiert."
END IF
IF FILECOPY("C:\TMP\*.txt", "TMP\Dst.txt") THEN
PRINT "Fehler beim Kopieren von C:\TMP\*.txt nach C:\TMP\Dst.txt."
ELSE
PRINT "C:\TMP\*.txt nach C:\TMP\Dst.txt kopiert."
END IF
IF FILECOPY("C:\TMP\Src.txt", "C:\TMP\Src.txt") THEN
PRINT "Fehler beim Kopieren von C:\TMP\Src.txt nach C:\TMP\Src.txt."
ELSE
PRINT "C:\TMP\Src.txt nach C:\TMP\Src.txt kopiert."
END IF
IF FILECOPY("C:\ThisFolderDoesSurelyNotExist\Src.txt", "C:\TMP\Src.txt") THEN
PRINT "Fehler beim Kopieren von C:\ThisFolderDoesSurelyNotExist\Src.txt"
PRINT "nach C:\TMP\Src.txt."
ELSE
PRINT "C:\ThisFolderDoesSurelyNotExist\Src.txt nach C:\TMP\Src.txt kopiert."
END IF
' Die erstellten Daten löschen
KILL "TMP\Src.txt"
KILL "TMP\Dst.txt"
KILL "Dst.txt"
' Das Verzeichnis TMP löschen, wenn sich keine
' Daten oder Unterordner mehr darin befinden.
RMDIR "TMP"
SLEEP
Ausgabe:
C:\TMP\Src.txt nach C:\TMP\Dst.txt kopiert.
C:\TMP\Src.txt nach C:\Dst.txt kopiert.
Fehler beim Kopieren von C:\TMP\*.txt nach C:\TMP\Dst.txt.
Fehler beim Kopieren von C:\TMP\Src.txt nach C:\TMP\Src.txt.
Fehler beim Kopieren von C:\ThisFolderDoesSurelyNotExist\Src.txt
nach C:\TMP\Src.txt.
Unterschiede zu QB: existiert nur in Visual Basic
Plattformbedingte Unterschiede:
- Unter Linux muss der Dateiname 'case sensitive' erfolgen. Windows und DOS sind 'case insensitive'.
- Das Trennzeichen für den Dateipfad ist unter Linux der vorwärtsgerichtete Slash /. Windows verwendet den Backslash \, erlaubt aber auch den Slash. DOS verwendet den Backslash.
Unterschiede zu früheren Versionen von FreeBASIC: existiert seit FreeBASIC v0.17
Siehe auch:
FILEEXISTS, KILL, Dateien (Files), Betriebssystem-Anweisungen
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|