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

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 20 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 925 27.05.18 15:54 Сейчас в теме
(11)
Сам столкнулся с такой же ситуацией. Решение в том, что НовоеИмя должно быть только именем папки, а не полным адресом её с именем. Т.е. "НоваяПапка", а не "C:\НоваяПапка".
12. Akuji 20 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 709 08.03.21 07:27 Сейчас в теме
16. makfromkz 32 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" для простых операций с файлами/папками, то зачем нам функционал работы с файлами в платформе. Давайте будем пользоваться сторонними разработками. Вообще половину функционала платформы переведём на сторонних разработчиков и их системы и вам будет очень удобно сваливать на сторонних разработчиков все проблемы и люди-человеки не будут ломать голову".
Оставьте свое сообщение
Вакансии
Консультант-аналитик 1С
Нижний Новгород
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Нижний Новгород
зарплата от 100 000 руб.
Полный день

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

Разработчик 1С
Санкт-Петербург
зарплата от 130 000 руб. до 170 000 руб.
Временный (на проект)

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству