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

1. Trofimov_M 13.12.11 15:42 Сейчас в теме
Как программно переименовать каталог?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. cool.vlad4 2 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 63 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 63 13.12.11 15:50 Сейчас в теме
1) ПереместитьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>)
2) КомандаСистемы("move " + СтароеИмя + " " + НовоеИмя);
5. cool.vlad4 2 13.12.11 15:51 Сейчас в теме
9. cool.vlad4 2 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 22 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 971 27.05.18 15:54 Сейчас в теме
(11)
Сам столкнулся с такой же ситуацией. Решение в том, что НовоеИмя должно быть только именем папки, а не полным адресом её с именем. Т.е. "НоваяПапка", а не "C:\НоваяПапка".
12. Akuji 22 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 Ответить
15. frkbvfnjh 787 08.03.21 07:27 Сейчас в теме
16. makfromkz 35 09.06.21 12:52 Сейчас в теме
Мне тоже понадобилось переименовать каталог:

	//Shell = Новый COMОбъект("Shell.Application");
	//Folder = Shell.NameSpace(Каталог1);
	//FolderItem = Folder.ParseName(ИмяФайла);
        //FolderItem.Name = ИмяФ1;	
	
//		КомандаСистемы("ren " + ИмяФайла + "    " + ИмяФ1, Каталог1);
	
	//		 ПереместитьФайл(Каталог1 + "\" + ИмяФайла, Каталог1 + "\" + ИмяФ1);
	
		objFSO = Новый COMОбъект("Scripting.FileSystemObject");
	       objFSO.MoveFolder(Каталог1 + "\" + ИмяФайла, Каталог1 + "\" + ИмяФ1);
Показать


Ни один из этих методов на 8.3.16 не сработал
17. Alex_1066 15.08.22 09:57 Сейчас в теме
Хочется спросить разработчиков платформы.. "если я должен использовать "Scripting.FileSystemObject" для простых операций с файлами/папками, то зачем нам функционал работы с файлами в платформе. Давайте будем пользоваться сторонними разработками. Вообще половину функционала платформы переведём на сторонних разработчиков и их системы и вам будет очень удобно сваливать на сторонних разработчиков все проблемы и люди-человеки не будут ломать голову".
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот