Имя: Пароль:
1C
 
Как удалить каталог?
0 New_Comer_2
 
17.04.08
15:38
Всем доброго дня!
Я создаю каталог. Создаю внем файлы. И в конце не могу удалить каталог с файлами. Подскажите как можно это сделать?
Заранее спасибо!
1 smaharbA
 
17.04.08
15:39
удалить файлы
2 New_Comer_2
 
17.04.08
15:53
(1) проблема, я не знаю есть ли там файлы и не знаю какие (разного формата)
3 Мулька
 
17.04.08
15:56
Рассказывай дальше.
4 Нуф-Нуф
 
17.04.08
15:57
проводик - нужная папка - правой кнопкой - удалить
5 New_Comer_2
 
17.04.08
15:59
Ну если папка пуста то удаляется

Procedure OnFinishSystem()
   
   FS.RemoveDirectory(КаталогВременныхФайлов()+ "\ForScan\");


А если нет то НЕТ... ну вот.
6 New_Comer_2
 
17.04.08
16:00
(4) 1С не поймет :)
7 Мулька
 
17.04.08
16:01
(6) Пля, ты расскажешь как удалять пытаешься ? Или тебе ДОС сюда запостить ?
8 New_Comer_2
 
17.04.08
16:02
(7) Извини, не понял тебя?
9 Мулька
 
17.04.08
16:03
(8) Код в студию
10 New_Comer_2
 
17.04.08
16:04
(9) Если не сложно... был бы признателен.
11 Мулька
 
17.04.08
16:06
(10) "И в конце не могу удалить каталог с файлами. Подскажите как можно это сделать?"
- может, сначала покажешь как не можешь ?
12 smaharbA
 
17.04.08
16:07
удалить файлы (при надобности - рекурсивно)
13 smaharbA
 
17.04.08
16:10
+(12) если лениво

КомандаСистемы("rmdir /s /q """+КаталогВременныхФайлов()+ "\ForScan\"+"""");
14 New_Comer_2
 
17.04.08
16:13
(11) При начале работы системы создается каталог

Procedure OnStartSystem()
   
   FS.CreateDirectory(КаталогВременныхФайлов()+ "\ForScan\");
   
EndProcedure
После при работе некоторых объектов (справочников и документов) в каталоге ForScan создаются автоматически (временные) файлы...

По идее при завершении системы данная папка должна уничтожаться...

Procedure OnFinishSystem()
   
   FS.RemoveDirectory(КаталогВременныхФайлов()+ "\ForScan\");

Так она не удаляется (если есть файлы). Ну вот...
15 New_Comer_2
 
17.04.08
16:16
(13) СПАСИБО работает.  Только если не сложно, откуда ЭТО
КомандаСистемы("rmdir /s /q """+КаталогВременныхФайлов()+ "\ForScan\"+"""");
И где можно про "такие" прочитать?
16 Программист 484
 
17.04.08
16:23
rmdir /?
А уши из доса торчат
17 smaharbA
 
17.04.08
16:47
для начала - Пуск - Справка и поддержка
18 smaharbA
 
17.04.08
16:49
+ Для лодырей (может кто и красивше сделает, но лениво)

Функция Рекурсия(Знач Путь,Сп)
   Перем А;
   ФСО=СоздатьОбъект("ФС");
   Стр=ФСО.НайтиПервыйФайл(Путь+"\*.*");
   Пока ПустоеЗначение(Стр)=0 Цикл
       Если (Стр<>"..") и (Стр<>".") Тогда
           Представление="";
           Для к=1 По СтрЧислоВхождений(Путь+"\"+Стр,"\") Цикл
               Представление=Представление+"\";
           КонецЦикла;
           Сп.ДобавитьЗначение(Путь+"\"+Стр,Представление+Стр);
           ФСО.АтрибутыФайла(Путь+"\"+Стр,,А);
           Если Сред(А,4,1)="1" Тогда
               Рекурсия(Путь+"\"+Стр,Сп);
           КонецЕсли;
       КонецЕсли;
       Стр=ФСО.НайтиСледующийФайл();
   КонецЦикла;
КонецФункции    // Рекурсия
//*******************************************
Процедура Сформировать()
   Перем Каталог,А;
   Если ФС.ВыбратьКаталог(Каталог,"")=0 Тогда
       Возврат;
   КонецЕсли;
   Сп=СоздатьОбъект("СписокЗначений");
   Рекурсия(Каталог,Сп);
   Сп.СортироватьПоПредставлению(0);
   Для к=1 По Сп.РазмерСписка() Цикл
       Стр=Сп.ПолучитьЗначение(к);
       ФС.АтрибутыФайла(Стр,,А);
       Если Сред(А,4,1)="1" Тогда
           ФС.УдалитьКаталог(Стр);
       Иначе
           ФС.УдалитьФайл(Стр);
       КонецЕсли;
   КонецЦикла;
   ФС.УстТекКаталог(Каталог+"\..\");
   ФС.УдалитьКаталог(Каталог);
КонецПроцедуры

Каталог выбираем в окне выбора C:\ )))
19 smaharbA
 
17.04.08
16:52
+(18) да, еще - неудалит если в папке есть с атрибутами только для чтения и системные