Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как скопировать папку с подпапками в новое место?

248
26 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Вот есть папка:
C:\Program Files\Adobe\PageMaker 7.0\RSRC\USENGLSH\Plugins\Scripts\BW\
Ее (вместе с находящимся там файлОм, ессно) надо скопировать в место резервного хранения:
F:\cpkr\Revive\Rev\BW\. Можно это сделать одно командой, или придется запускать прогон по всем поддиректориям с помощью objFso и писать потом Filecopy sF.Path & "\*.*". Кстати, а если половина файлов не имеют расширений, они тоже будут скопированы?
И можно ли как-то регламентировать режимы перезаписи типа "только более старые" или "все подряд".
Спасибо.
5.9K
27 сентября 2007 года
SPB-667
119 / / 23.06.2007
Скорее всего придётся идти по сложному пути! :rolleyes:
405
27 сентября 2007 года
Dmitrii
554 / / 16.12.2004
Не вполне уверен, что правильно понял Вашу задачу (вначале речь идёт о папке с одним файлОм, а потом - уже о множестве файлов), но предложу такой пример:
 
Код:
Sub Example()
xRes = Shell("xcopy.exe c:\temp\kav e:\kav /d /e /y")
MsgBox xRes
End Sub
248
27 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Цитата: Dmitrii
Не вполне уверен, что правильно понял Вашу задачу (вначале речь идёт о папке с одним файлОм, а потом - уже о множестве файлов), но предложу такой пример:
 
Код:
Sub Example()
xRes = Shell("xcopy.exe c:\temp\kav e:\kav /d /e /y")
MsgBox xRes
End Sub


Под файлОм я имел ввиду жаргонное употребление слова "файлы". Т.е. их там много. Но главная проблема в том, что XCOPY не понимает длинных путей с русскими символами. В частности, normal.dot скопировать не удастся, т.к. его путь содержит русские символы (в папке "Шаблоны" сидит).

405
28 сентября 2007 года
Dmitrii
554 / / 16.12.2004
Цитата: Dmitry2064
... Но главная проблема в том, что XCOPY не понимает длинных путей с русскими символами...


Сранно. У меня длинные пути (в том числе и с пробелами, и с кириллицей) прекрасно обрабатываются.
Единственное затруднение возникает в том случае, если верхний каталог содержит пробел в имени, но способ решения такой задачи мы уже разбирали. Вот пример:

 
Код:
Sub Example()
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

Цитата: Dmitry2064
... В частности, normal.dot скопировать не удастся, т.к. его путь содержит русские символы (в папке "Шаблоны" сидит).


А нет ли у этого файла атрибута "скрытый" или "системный"? Если есть, то используйте ещё и ключ [color=blue]/h[/color].

6.4K
28 сентября 2007 года
Host
122 / / 22.09.2005
Цитата: Dmitry2064
Под файлОм я имел ввиду жаргонное употребление слова "файлы". Т.е. их там много...



Объект Shell так же позволяет работать не только с файлами, но и с папками:

Пример копирует папку Source (с вложениями) в папку Destination

Код:
Sub copyFolder()
    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
405
28 сентября 2007 года
Dmitrii
554 / / 16.12.2004
[QUOTE=Host;]Объект Shell так же позволяет работать не только с файлами, но и с папками...[/QUOTE]Но не позволяет вот этого:
[QUOTE=Dmitry2064;]... режимы перезаписи типа "только более старые"...[/QUOTE]
248
28 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Цитата: Dmitrii
Но не позволяет вот этого:


Интересно, т.к. действительно нужно что-то перезаписать, а что-то скопировать только новое.
Будем сейчас прописываться. :-))
Спасибо за идеи.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог