|
Работа с папками.
|
|||
---|---|---|---|
#18+
Задачка простая. создавать и хранить 3 копии одной и той же папки с изменениями. 1) копия - это текущая рабочая папка 2) последня копися папки 3) предпоследняя копия папки. Хочу сделать просто проверяю есть ли 2 копия. если нет создаю папку bkp и копирую туда данные тут проблем нет. а вот с третьей копией думается мне сделать так. перед тем как делать копию 2 проверить есть ли папка bkp если нет то смотрю есть ли копия 3 (т.е. есть ли в наличии папка bkp_old). Если есть папка bkp_old существует то я ее удаляю, если нет то переименовываю папку bkp в bkp_old. Вроде все просто. Работаю с Shell однако если выполняю Код: vbnet 1.
получаю ошибку FILE NOT FOUND. Эта же команда в cmd выполняется без проблем. Ладно время поджимает дай думаю через FSO попробую пишу: Код: vbnet 1. 2. 3. 4. 5.
и на последней строчке Type Mismatch. Чертовщина какая то. Где я ошибаюсь? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:18 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Alex_menРаботаю с Shell однако если выполняюКавычки удвоить (ну или не нужны они вообще, так как нет пробелов в пути) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:22 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.Pro, С кавычками вроде должен быть порядок. Кавычки нужны для папок содержащих пробелы на старых версиях винды.Сделал так: Код: vbnet 1. 2. 3. 4. 5. 6.
msgbox strshell отображает : rename "c:\bkp" bkp_old , т.е. дело не в кавычках, да и пробовал я их убирать. Пробовал давать команду Код: vbnet 1.
Эффект тот же. File NOT FOUND. Пробовал добавлять убирать слеш в конце пути и имени искомой папки. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:34 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.Pro, OPTION EXPLICIT использую всегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:36 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Alex_menЭффект тот же. File NOT FOUND.А, вспомнил, для Shell нужно указать полный путь к файлу. Используй ShellExecute ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:38 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Alex_menOPTION EXPLICIT использую всегда.Не верю: Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:38 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.ProAlex_menOPTION EXPLICIT использую всегда.Не верю: Код: vbnet 1. 2. 3. 4. 5.
Впрочем, возможно в коде у тебя есть две переменных, sfo и fso, обе объявлены, просто ты не ту используешь ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:40 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.Pro, да нет же! тут просто опечатался. элемент FSO один. и Option explicit тоже есть все проверил. библиотеки scripting runtime и ShellControls подключены. c ShellExecute вопрос вот какой. На самом деле я использую утилиту контроля завершения выполнения вот она процесс переименования не запускает.А Shell я использовал чтобы проверить в чем может быть ошибка. И уж никак не ожидал увидеть FileNotFound. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:02 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4.
вот этот код у меня ошибок не выдает. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:10 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.Pro, выполнил вот таким образом Код: vbnet 1.
По свойствам cmd кавычки в пути вопринимаются только для запуска исполняемых файлов. Хотя если в самой командной строке набираю с кавычками, то проблем не возникает. Отношу это на счет того что испытываю на ХР, сейчас еще попробую если в пути будут пробелы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:12 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Alex_men, В общем все дело в свойствах запуска командной строки, точнее ограничений на использование кавычек. решение получилось вот каким: Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:22 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.Pro Код: vbnet 1. 2. 3. 4.
вот этот код у меня ошибок не выдает. Да в том то и дело. Тупо копирую этот код и TypeMismatch ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:25 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
проверь в момент ошибки Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:28 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Соответственно по строкам получаю FileSystemObject Nothing Folder ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:34 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.Pro, При этом в соседней ветке (когда пака bkp не найдена) прекрасно отрабатывает код Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:39 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Попробуй Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:41 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.ProПопробуй Код: vbnet 1.
Эврика. так прошло. С Shelom еще на засаду наткнулся. тренировался с папкой c:\123 преименовывается как хочешь и во что хочешь. а вот если пишу c:\BKP все приехали. Есть мысль что проблема в кодовой странице, НО! как то это странно ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 15:14 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Alex_menЭврика. так прошло.значит у тебя где-то существует класс или тип Folder (в другой библиотеке или в самом проекте) и по умолчанию переменная объявлялась не того типа. Посмотреть можешь по F2 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 15:25 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.Pro, А по переименованию символьного имени папки не сталкивались? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 15:31 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
ВКР - это по-русски? Попробуй латиницу ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 15:32 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.ProВКР - это по-русски? Попробуй латиницу это латиница. Вся заковыка оказалось в предшествующей команде Dir. Т.е. получается для кода: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
команда Код: vbnet 1.
захватывает папку в монопольный режим для данного приложения. В остальных приложениях я переименовываю папку как хочу. вставив перед строчкой Shell проверку наличия папки bkp_old я перевел фокус на другой объект и Shell отработал как надо. Шайтан однако, В хелпе такого не обозначено ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 15:52 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Немного разовью тему. Предыдущие вопросы решены, теперь хочется навести красоту. Что не нравится в полученном решении: 1) когда выполняются строки Shell открываются черные окна CMD. Хотелось бы их спрятать, чтобы не мельтешили перед пользователем. У самой командной строки таких ключей не нашел. В интернете нашел вариант запуска через START. Но как я понял на сайте тех поддержки самого Микрософта работает корявенько. 2) пробовал использовать свойства FSO. Но столкнулся со странной проблемой. При попытке копировании файлов в созданные мною же папки идет ошибка доступа Permission Denaed Есть какие то мысли как решить такую задачку? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 10:26 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Alex_menпробовал использовать свойства FSO. Но столкнулся со странной проблемой. При попытке копировании файлов в созданные мною же папки идет ошибка доступа Permission Denaed По фотографии мы не лечим. Показывайте код и цитату ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 10:30 |
|
Работа с папками.
|
|||
---|---|---|---|
#18+
Но вообще я не понимаю, зачем используется VB, когда задача элементарно для VBS: create fso if folderexists(bak_2) then deletefolder(bak_2) movefolder(bak_1,bak_2) copyfolder(work,bak_1) Добавить только приём-парсинг параметров и обработку ошибок... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 10:36 |
|
|
start [/forum/topic.php?fid=60&msg=38118238&tid=2157199]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 159ms |
0 / 0 |