File kopieren

Hallo zusammen,

naechstes problem

und zwar will ich eine datei kopieren habe dazu

Sub Kopieren()

Dim fso As New FileSystemObject
Dim strQuelle As String
Dim strZiel As String

'zuweisen der Variablen
strQuelle = „C:\Documents and Settings\account\Desktop\test3.txt“
strZiel = „C:\Documents and Settings\account\Desktop\test1“

'Dateien kopieren
fso.CopyFile strQuelle, strZiel

End Sub

aber es tut sich nuescht - keine fehlermeldung und kopiert wird auch nuescht !

wisst ihr warum? was mach ich falsch?

gruss manuel

Hallo, Manuel!

fso.CopyFile strQuelle, strZiel

Braucht das .CopyFile vielleicht eine Zieldatei und gibt sich nicht mit einem Verzeichnis zufrieden? Ich kopiere meist nicht mit dem FileSystemObject, insofern bin ich mir hier nicht sicher…

Gruß, Manfred

Servus Manfred,

hm - ne is es leider auch ned - wie kopierst du?

gruss manuel

Hallo, Manuel!

Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, \_
 ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
 
 
Sub CopyFilePerAPI(pstrQuelle As String, pstrZiel As String)
 Dim lngErr As Long
 Dim lngDumms As Long
'--------------------
On Error GoTo ErrorHandler

 lngDummy = CopyFile(pstrQuelle, pstrZiel, lngErr)

' Fehlerbehandlungsblock hinzugefügt vom Fehlerbehandlungsroutinen-Add-In. Bearbeiten Sie diesen Codeabschnitt NICHT.
'--------------------
ErrorHandler:
 Select Case Err.Number
 Case 0
 Case Else
 logObj.logError mcstrModName, cstrProcName, Err.Number, Err.Description, Err.Source
 Resume ErrorHandler
 End Select
' Ende des Fehlerbehandlungsblocks.
End Sub

Dabei ist das logObj meine Fehlerbehandlungsklasse. Ggf. durch MsgBox zu ersetzen…

Gruß, Manfred

hm - das sieht mir ja sehr „umstaendlich“ aus!

es geht ja nur um ne kleine textdatei :wink:)
ich versuchs mal danke dir!

gruss manuel

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hm - das sieht mir ja sehr „umstaendlich“ aus!

Eigentlich nicht. Die API-Deklaration langt. Eigentlich ist das doppelt gemoppelt. Nach der API-Deklaration langt auch der Aufruf

Call CopyFile(strQuelle, strZiel, 0)

Geht doch, oder? Hab Dir halt nur den Code aus einem Modul rauskopiert. Und da war mal mehr drin, weil ich vorher noch eine eigene Kollisionsbehandlung in der Prozedur drin hatte…

Gruß, Manfred

Hi manuel,
ich mit

FileCopy Quelle, Ziel

kurz genug? :wink:

Gruß, Rainer

FileCopy Quelle, Ziel

FYI: Machte bei mir mal Zicken, wenn die Quelldatei geöffnet war, daher der Umweg über API-Aufruf.

Gruß, Manfred

Hallo Manfred,

FileCopy Quelle, Ziel

FYI: Machte bei mir mal Zicken, wenn die Quelldatei geöffnet
war, daher der Umweg über API-Aufruf.

ja, es gibt noch mehr Gründe für die API. Man benötigt auch zwingend einen Laufwerksbuchstaben. Im angegebenen Fall sollte die ‚Kurzlösung‘ aber reichen.

Gruß, Rainer

Danke euch!
…werde es demnaechst mal ausprobieren - momentan komm ich weider mal ned dazu! :wink:

Danke auf alle Faelle und Gruss

Manuel!