Как программно переименовать каталог?

1. 13.12.11 15:42 Сейчас в теме
Как программно переименовать каталог?
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. cool.vlad4 45 13.12.11 15:46 Сейчас в теме
ПереместитьФайл (MoveFile)
Синтаксис:

ПереместитьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>)
Параметры:

<ИмяФайлаИсточника> (обязательный)

Тип: Строка.
Полное имя файла-источника (полное исходное имя файла).
<ИмяФайлаПриемника> (обязательный)

Тип: Строка.
Полное имя файла-приемника (полное новое имя файла).
Описание:

Выполняет перемещение (переименование) указанного файла.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание:

Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши '/', а не обратные '\'.
Для работы метода на веб-клиенте, необходимо предварительно подключить расширение работы с файлами.
На веб-клиенте метод работает только с локальными файлами.
Пример:

ПереместитьФайл("C:\Temp\Order.htm", "C:\My Documents\Order.htm");
6. Trofimov_M 13.12.11 15:52 Сейчас в теме
(2) у меня для каталогов этот метод не работает, ругается "неправильный путь к файлу"!
7. juntatalor 62 13.12.11 15:58 Сейчас в теме
(6) Как указываете имя каталога?
8. Trofimov_M 13.12.11 16:00 Сейчас в теме
(7) по всякому пробовал, и так
Имя = "D:\TestVer\TestVer_RepStorage\ЗагрузкаПО\123";
Папка = Новый Файл(Имя);
ПереместитьФайл(Папка.ПолноеИмя, Папка.Путь + "Setup");

и так

ПереместитьФайл("D:\TestVer\TestVer_RepStorage\ЗагрузкаПО\123", "D:\TestVer\TestVer_RepStorage\ЗагрузкаПО\Setup");
3. goodwin12 13.12.11 15:48 Сейчас в теме
4. juntatalor 62 13.12.11 15:50 Сейчас в теме
1) ПереместитьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>)
2) КомандаСистемы("move " + СтароеИмя + " " + НовоеИмя);
5. cool.vlad4 45 13.12.11 15:51 Сейчас в теме
9. cool.vlad4 45 13.12.11 16:02 Сейчас в теме
Тогда еще так
objFSO = Новый COMОбъект("Scripting.FileSystemObject");
objFolder = objFSO.GetFolder("C:\_1");
objFolder.Name = "_21";
10. Trofimov_M 13.12.11 16:04 Сейчас в теме
(9), да пользовался этим объектом в 7-ке, думал в 8-ке есть что-то типовое
11. Akuji 17 04.12.13 15:48 Сейчас в теме
objFSO = Новый COMОбъект("Scripting.FileSystemObject");
objFolder = objFSO.GetFolder("C:\_1");
objFolder.Name = "_21";


Как в последней строке указать не конкретное имя, а значение переменной?
Пробую:
objFolder.Name = ""+НовоеИмя+"";//в кавычках, без ... одинаково(
Ошибка:
Ошибка1: {Обработка.ПакетнаяОбработкаБаз.Форма.Форма.Форма(1622)}: Ошибка при установке значения атрибута контекста (Name): Произошла исключительная ситуация (0x80070057)
14. for_sale 832 27.05.18 15:54 Сейчас в теме
(11)
Сам столкнулся с такой же ситуацией. Решение в том, что НовоеИмя должно быть только именем папки, а не полным адресом её с именем. Т.е. "НоваяПапка", а не "C:\НоваяПапка".
12. Akuji 17 04.12.13 15:51 Сейчас в теме
Первые два способа работают только с файлами, а не каталогами?
13. sonnix 23.12.16 00:42 Сейчас в теме
ПереместитьФайл( ИмяФайлаИсточника, ИмяФайлаПриемника) не работает с каталогами. По крайней мере на 8.3.8 и 8.3.9

Если исполнение на Windows, то работает следующий код:

objFSO = Новый COMОбъект("Scripting.FileSystemObject");
objFSO.MoveFolder(полноеСтароеИмяПапки,полноеНовоеИмяПапки);


gubanoff; +1 Ответить
Оставьте свое сообщение
Вопросы с вознаграждением