как скопировать папку с подпапками в новое место?
C:\Program Files\Adobe\PageMaker 7.0\RSRC\USENGLSH\Plugins\Scripts\BW\
Ее (вместе с находящимся там файлОм, ессно) надо скопировать в место резервного хранения:
F:\cpkr\Revive\Rev\BW\. Можно это сделать одно командой, или придется запускать прогон по всем поддиректориям с помощью objFso и писать потом Filecopy sF.Path & "\*.*". Кстати, а если половина файлов не имеют расширений, они тоже будут скопированы?
И можно ли как-то регламентировать режимы перезаписи типа "только более старые" или "все подряд".
Спасибо.
xRes = Shell("xcopy.exe c:\temp\kav e:\kav /d /e /y")
MsgBox xRes
End Sub
xRes = Shell("xcopy.exe c:\temp\kav e:\kav /d /e /y")
MsgBox xRes
End Sub
Под файлОм я имел ввиду жаргонное употребление слова "файлы". Т.е. их там много. Но главная проблема в том, что XCOPY не понимает длинных путей с русскими символами. В частности, normal.dot скопировать не удастся, т.к. его путь содержит русские символы (в папке "Шаблоны" сидит).
Сранно. У меня длинные пути (в том числе и с пробелами, и с кириллицей) прекрасно обрабатываются.
Единственное затруднение возникает в том случае, если верхний каталог содержит пробел в имени, но способ решения такой задачи мы уже разбирали. Вот пример:
Const strSource = """C:\Антивирус Касперского"""
Const strTarget = """E:\Антивирус Касперского"""
'xRes = Shell("xcopy.exe ""C:\Антивирус Касперского"" ""E:\Антивирус Касперского"" /d /e /i /h /y")
'xRes = Shell("xcopy.exe " & strSource & " " & strTarget & " /d /e /i /h /y")
End Sub
А нет ли у этого файла атрибута "скрытый" или "системный"? Если есть, то используйте ещё и ключ [color=blue]/h[/color].
Объект Shell так же позволяет работать не только с файлами, но и с папками:
Пример копирует папку Source (с вложениями) в папку Destination
Dim objShell As Object
Dim objFolder As Object
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("C:\Destination")
If (Not objFolder Is Nothing) Then
objFolder.CopyHere "C:\Source", 128
End If
Set objFolder = Nothing
Set objShell = Nothing
End Sub
[QUOTE=Dmitry2064;]... режимы перезаписи типа "только более старые"...[/QUOTE]
Интересно, т.к. действительно нужно что-то перезаписать, а что-то скопировать только новое.
Будем сейчас прописываться. :-))
Спасибо за идеи.