Fehlermeldung, wenn die filesystemobject.copyfolder-Methode eine schreibgeschützte Datei entdeckt: "Zugriff verweigert"

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 941190
Problembeschreibung
Sie versuchen, den folgenden Code verwenden, um den Inhalt eines bestimmten Ordners Zielordner kopieren, eine schreibgeschützte Datei enthält:
Dim fso, result, source, destination source= "C:\source_folder" destination = "D:\destination_folder" Set fso = CreateObject("Scripting.FileSystemObject") result = fso.CopyFolder(source, destination, true) 
Hinweis In diesem code source_folder den eigentlichen Ordner Quellennamen darstellt und destination_folder der Name des aktuellen Zielordners darstellt.
Wenn Sie diesen Code ausführen, wird die folgende Fehlermeldung im Dialogfeld Windows Script Host :
Skript: C:\folderName\test.vbs
Zeile: 3
Zeichen: 1
Fehler: Zugriff verweigert
Code: 800A0046
Quelle: Microsoft VBScript-Laufzeitfehler
Dieses Verhalten wird erwartet. In der Regel erhalten Sie eine Fehlermeldung "Zugriff verweigert", stößt die filesystemobject.copyfolder -Methode eine schreibgeschützte Datei. Jedoch können Sie eine Datei in einen Ordner ziehen, die eine schreibgeschützte Datei mit demselben Namen enthält. In diesem Fall wird die folgende Meldung in Windows Explorer:
Dieser Ordner enthält bereits eine schreibgeschützte Datei mit dem Namen "test.txt"
Möchten Sie die vorhandene Datei ersetzen:
target_file_information
mit diesem?
source_file_information
Ursache
Dieses Problem tritt aufgrund einer Beschränkung der CopyFolder -Methode auf. Die CopyFolder -Methode kann eine Datei im Zielordner nicht überschreiben, wenn diese Datei das Attribut schreibgeschützt hat. Die CopyFile -Methode hat dieselbe Einschränkung.
Lösung
Wenn das Problem mithilfe des Dienstprogramms XCOPY zusammen mit der Befehlszeilenoption/rschreibgeschützte Dateien überschrieben. Das folgende Codebeispiel zeigt eine Möglichkeit dazu mithilfe des Dienstprogramms XCOPY.

Microsoft bietet Programmierbeispiele lediglich zur Veranschaulichung, ohne ausdrückliche oder konkludente Gewährleistung. Dies beinhaltet, ist jedoch nicht beschränkt auf, konkludente Gewährleistungen der Tauglichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der von Beispielen verwendeten Programmiersprache und den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden, vertraut sind. Microsoft-Supporttechniker helfen der Erläuterung der Funktionalität bestimmter Prozeduren. Werden ändern sie nicht zur Verfügung und Programmierungsbeispiele Ihre spezifischen Bedürfnisse.
Dim oShell, source, destination source = "C:\myFolder\*" destination = "D:\myOtherFolder" Set oShell = WScript.CreateObject("WScript.Shell") oShell.Run "xcopy.exe " & source & " " & destination & " /R /Y"Set oShell = Nothing 
In diesem Codebeispiel ermöglicht r schreibgeschützte Dateien überschrieben. Die Befehlszeilenoption unterdrückt gefragt, die vorhandene Zieldatei überschrieben werden soll.

Hinweise
  • Die Befehlszeilenoption kann in der Umgebungsvariablen COPYCMD voreingestellt. Wenn die Aufforderung angezeigt werden soll, können Sie/-y Version von der Befehlszeilenoption . /-Y Version des Switch schaltet der Befehlszeilenoption in der Umgebungsvariablen COPYCMD voreingestellt .
  • ROM ist nicht verfügbar in Windows Vista. Verwenden Sie zum Beheben dieses Problems in Windows Vista Robocopy.exe Datei anstelle der Datei Xcopy.exe im Codebeispiel.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 941190 – Letzte Überarbeitung: 10/26/2015 02:46:00 – Revision: 3.0

  • kbdevsicnvrtkb kbmt KB941190 KbMtde
Feedback