1. Trofimov_M 13.12.11 15:42 Сейчас в теме

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

Как программно переименовать каталог?
Ответы
Избранное Подписка Сортировка: Древо
2. cool.vlad4 44 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 60 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 60 13.12.11 15:50 Сейчас в теме
1) ПереместитьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>)
2) КомандаСистемы("move " + СтароеИмя + " " + НовоеИмя);
5. cool.vlad4 44 13.12.11 15:51 Сейчас в теме
9. cool.vlad4 44 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 10 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 659 27.05.18 15:54 Сейчас в теме
(11)
Сам столкнулся с такой же ситуацией. Решение в том, что НовоеИмя должно быть только именем папки, а не полным адресом её с именем. Т.е. "НоваяПапка", а не "C:\НоваяПапка".
12. Akuji 10 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С
Москва
зарплата от 200 000 руб.
Полный день

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

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

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

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству