Не получается удалить каталог на диске из 1С.

Форум 1С: Одинэс.Ру

Найти!

Не получается удалить каталог на диске из 1С.

pakitos2008
24.04.2009 - 09:39
Есть необходимость удалить определенный каталог со всеми файлами, находящимися в нем. Этот каталог находится в каталоге базы, в которой происходит работа и попытка удаления (это ни ExtForms, ни Syslog, ни New_Stru и т.д.). Проблема в том, что я могу удалить только файлы, которые находятся в этом каталоге. Сам каталог не хочет удаляться. Сначала я код писал сам, потом взял готовый из конфигурации Деньги (его отличие от моего, то что он очищает рекурсивно - все каталоги и файлы в удаляемой папке). Но ни мой код, ни код из Денег, так и не удаляют сам каталог, а все что внутри прекрсано удаляют.
 
Вот последний код (из Денег)
//*****************************************************************************
Процедура СнятьАтрибут(ПолныйПуть)
Попытка
КомандаСистемы("attrib -R "+ПолныйПуть);
Исключение
КонецПопытки;
КонецПроцедуры  //  СнятьАтрибут
//*****************************************************************************
// ОчиститьКаталог(Каталог)
//
// Параметры:  Каталог - наименование очищаемого каталога
//
// Описание:  Рекурсивная процедура. Осуществляет полную очистку указанного каталога
Процедура ОчиститьКаталог(Каталог)
Перем Размер,Атр,ВС,ВД,ВЗ,Расш;
Перем СписокФайлов, СписокКаталогов;
 
СписокФайлов = СоздатьОбъект("СписокЗначений");
СписокКаталогов = СоздатьОбъект("СписокЗначений");
 
// получим имя первого файла
ФГ=СоздатьОбъект("ФС");
Файл = ФГ.НайтиПервыйФайл(Каталог + "\*.*");
Пока ПустаяСтрока(Файл) = 0 Цикл
Если (Файл <> "..") И (Файл <> ".") Тогда
ПолноеИмя = Каталог + "\" + Файл;
ФГ.АтрибутыФайла(ПолноеИмя, Размер, Атр, ВС, ВД, ВЗ, Расш);
Если Сред(Атр, 4, 1) = "1" Тогда
СписокКаталогов.ДобавитьЗначение(ПолноеИмя);
Иначе
СписокФайлов.ДобавитьЗначение(ПолноеИмя);
КонецЕсли;
КонецЕсли;
Файл = ФГ.НайтиСледующийФайл();
КонецЦикла;
 
// очистить текущий каталог
Для Индекс = 1 По СписокФайлов.РазмерСписка() Цикл
Имя = СписокФайлов.ПолучитьЗначение(Индекс);
ФГ.АтрибутыФайла(Имя, Размер, Атр, ВС, ВД, ВЗ, Расш);
Если Лев(Атр,1)="1" Тогда
СнятьАтрибут(Имя);
КонецЕсли;
ФС.УдалитьФайл(Имя);
КонецЦикла;
// если есть еще каталоги, то надо их очистить
Для Индекс = 1 По СписокКаталогов.РазмерСписка() Цикл
Имя = СписокКаталогов.ПолучитьЗначение(Индекс);
ОчиститьКаталог(Имя);
ФС.УдалитьКаталог(Имя + "\");  
КонецЦикла;    
 
Имя=Каталог;
ФС.УдалитьКаталог(Имя + "\");  
 
КонецПроцедуры  // ОчиститьКаталог
 
Как же мне удалить этот каталог?
Имя=Каталог;
ФС.УдалитьКаталог(Имя + "\");
К списку тем К списку форумов

Интересные темы

odines.ru
22.10.2020 - 11:51
Смотри также:
большие проблемы с файловой 1с 7.7
БуИт.ВыполнитьЗапрос('01.01.2008','31.12.2008',"01,02",,,1,,1); Как вывести в отчет итоги по 02 счету
Ввожу док на основании. В ТЧ пытаюсь править реквизит. Правится. Но из строки уже не выпускает..

Re: Не получается удалить каталог на диске из 1С.

VZ
1 - 24.04.2009 - 09:49
Права.
Винда обнаружила, что тебе нельзя удалять каталоги.

Re: Не получается удалить каталог на диске из 1С.

pakitos2008
2 - 24.04.2009 - 10:10
Я попробовал снять атрибут только для чтения - для этой папки
СнятьАтрибут(ПолныйПуть)
, но по-видимому у меня и этого не получается, из-за того что нет полных прав.
Я попробовал программно создать каталог при старте 1С, а при выходе из нее - он все равно не удалился, т.к. опять полных прав у меня почему-то нет.
 
Можно ли в принципе установить как-то полные права на каталог из 1С, а потом его удалить. 1С как-то удаляет каталог TMP.GRP при загрузке форм отчетности.

Re: Не получается удалить каталог на диске из 1С.

VZ
3 - 24.04.2009 - 10:22
Можно выполнить какую-ту работу с диском от имени администратора компа.
И нафига весь вышеприведенный мусор, если в винде есть комада delete(del) с атрибутами?

Re: Не получается удалить каталог на диске из 1С.

pakitos2008
4 - 24.04.2009 - 13:35
(VZ) Огромное спасибо.
Оказывается команда
КомандаСистемы ("RD /S /Q "+Каталог)
удаляет и сам каталог и все файлы в нем.
Можно не пользоваться объектом ФС в 1С!!!

Re: Не получается удалить каталог на диске из 1С.

VZ
5 - 24.04.2009 - 13:46
(4) :)
Посмотри еще WSH, получишь кучу интересных возможностей, не устанавливая посторонние приблуды ;)

Интересные темы

odines.ru
22.10.2020 - 11:51
Смотри также:
Как сделать, чтобы после старта форма открывалась максимизированной?
НДФЛ
Как убрать картинку 1С при загрузке? (+)

Re: Не получается удалить каталог на диске из 1С.

pakitos2008
6 - 24.04.2009 - 14:30
(VZ) а где посмотреть помощь по WSH в части использования из 1С (т.е. какие там методы, как их именно для 1С использовать)?

Re: Не получается удалить каталог на диске из 1С.

VZ
7 - 24.04.2009 - 14:50
(6) Полно ресурсов по WHS в инете. Есть электронные справочники: Automation.chm, WSH56.chm, есть алс для "семерки" ms_whs.als ;)

Re: Не получается удалить каталог на диске из 1С.

VZ
8 - 24.04.2009 - 15:01
Вот решение сабжа на WSH:
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.DeleteFolder Каталог, 1
К списку тем К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
« Перенести и перераспределить, это возможно? Подскажите конфигурация по управлению погрузками и доставками (под платформу 7.7) »
© 2009 Форум 1С: Одинэс.Ру