1. Trofimov_M 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 15 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 824 27.05.18 15:54 Сейчас в теме
(11)
Сам столкнулся с такой же ситуацией. Решение в том, что НовоеИмя должно быть только именем папки, а не полным адресом её с именем. Т.е. "НоваяПапка", а не "C:\НоваяПапка".
12. Akuji 15 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(полноеСтароеИмяПапки,полноеНовоеИмяПапки);


Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Москва
зарплата до 160 000 руб.
Полный день

Программист 1С
Тольятти
зарплата от 70 000 руб.
Полный день

Программист 1С
Воронеж
зарплата от 70 000 руб.
Полный день

Ведущий программист 1С (с функцией наставничества)
Екатеринбург
зарплата от 100 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 120 000 руб.
Полный день