Hallo Ihr da draußen!
Im Prinzip muss meine Anwendung einen Ordner von einem Netzlaufwerk in ein anderes Netzlaufwerk kopieren. Hierzu verwende ich die FileSystem Klasse von Johnson (siehehttp://atnotes.de/index.php?topic=27547.0 (http://atnotes.de/index.php?topic=27547.0)). Die Leserechte im Quellverzeichnis und die Schreibrechte im Zielverzeichnis sind vorhanden. Jedenfalls kann ich den Ordner per Hand kopieren.
In dem folgenden Code verwende ich den Laufwerksbuchstaben "Y" des Netzlaufwerks.
Dim myFileSystem As New FileSystem
If Not myFileSystem.FolderExists("Y:\test") Then
Call myFileSystem.CreateFolder("Y:\test")
End If
Call myFileSystem.CopyFolder(notesinstallationPath, "Y:\test")
Fehler Nummer: 213 Fehler Nachricht: OLE: Automation object error
Ich habe auch schon versucht den Laufwerkbuchstaben durch den Server und die Freigabe ("\\server1\1234") zu ersetzen. Siehe Code.
Dim myFileSystem As New FileSystem
If Not myFileSystem.FolderExists("\\server1\1234\test") Then
Call myFileSystem.CreateFolder("\\server1\1234\test")
End If
Call myFileSystem.CopyFolder(notesinstallationPath, "\\server1\1234\test")
Leider erhalte ich auch hier den selben Fehler. :-:
Wenn ich allerdings das ganze mit dem lokalen Laufwerk "C" versuche, dann funktioniert es ohne Probleme. Der Ordner wird vom Netzlaufwerk in das lokale Laufwerk kopiert.
Dim myFileSystem As New FileSystem
If Not myFileSystem.FolderExists("C:\test") Then
Call myFileSystem.CreateFolder("C:\test")
End If
Call myFileSystem.CopyFolder(notesinstallationPath, "c:\test")
Weiß jemand Rat? Schon mal vielen Dank im Voraus.
=> Du müsstest den Account wechseln, unter welchem Domino läuft.
Wie meinst du das genau? Kann ich den Kopier-Befehl im Hintergrund mit den Rechten eines anderen Accounts ausführen?
---------------------------------------------------------------------------------------
Also ich habe jetzt zwei andere Möglichkeiten gefunden mit denen das Kopieren klappt.
1. In einer gemeinsame Aktion funktioniert der Code.
2. Mit der Shell-Funktion, sowie der cmd.exe und dem Befehl xcopy.
Dim result As Integer
result = Shell("CMD.EXE /c xcopy /e \\server2\ordner1\ordner2 y:\test\", 1)