Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Как перенести по простому папку?

v7: Как перенести по простому папку?
Я
   РусскийВедун
 
05.12.18 - 14:46
Есть функция ПереименоватьФайл, которая переносит файл, но как перенести папку? Такой функции не нашел. Мало того, как узнать какие папки есть внутри этой папки, чтобы создать в новом месте такую же иерархию папок, а в исходном месте - тогда удалятькаталог (благо такая функция есть).
 
 
   Карст
 
1 - 05.12.18 - 14:49
   Kigo_Kigo
 
2 - 05.12.18 - 14:53
ПереименоватьФайл -> которая переносит файл
Однако
   РусскийВедун
 
3 - 05.12.18 - 15:33
В-общем все скопировал, а удалить никак каталог не получается.  Пишет ошибка.
Функция ЭтоКаталог(ИмяФайла) 
     Перем Размер, Атрибуты, Создан, Доступ, Запись, РасшИмяФайла; 
     Рез = 0; 
     ФС.АтрибутыФайла(ИмяФайла, Размер, Атрибуты, Создан, Доступ, Запись, РасшИмяФайла); 
     Если Сред(Атрибуты,4,1) = "1" Тогда 
          Рез = 1; 
     КонецЕсли; 
     Возврат Рез; 
КонецФункции         

процедура КопироватьФайлы(ПутьОткуда,ПутьКуда)       
    ФС_ = СоздатьОбъект("ФС");
    Если (ФС_.СуществуетФайл(путькуда) = 0)  Тогда 
        ФС_.СоздатьКаталог(ПутьКуда); 
    КонецЕсли; 
    ИмяФайла = ФС_.НайтиПервыйФайл(ПутьОткуда+"\*.*"); 
    Пока ПустаяСтрока(ИмяФайла) = 0 Цикл 
        Если (ИмяФайла <> ".") И (ИмяФайла <> "..") Тогда 
            Если ЭтоКаталог(ПутьОткуда+"\"+ИмяФайла) = 1 Тогда 
                ПодКаталогОткуда = ПутьОткуда + "\"+ИмяФайла; 
                ПодКаталогКуда = ПутьКуда + "\"+ИмяФайла; 
                // Проверим наличие подкаталога в папке ПутьКуда

                // - если его нет, создадим 

                Если (ФС_.СуществуетФайл(ПодКаталогКуда) = 0) ИЛИ
                (ЭтоКаталог(ПодКаталогКуда) = 0) Тогда 
                    ФС_.СоздатьКаталог(ПодКаталогКуда); 
                КонецЕсли; 
                КопироватьФайлы(ПодКаталогОткуда,ПодКаталогКуда); 
            Иначе
                Поз = Найти(ИмяФайла,"."); 
                //Расш = Нрег(?(Поз>0,Сред(ИмяФайла,Поз+1),"")); 

                //Если Расш <> Нрег(Расширение) Тогда 

                //    ИмяФайла = ФС_.НайтиСледующийФайл(); 

                //    Продолжить; 

                //КонецЕсли;

                ИмяФайлаИсточника = ПутьОткуда + "\" + ИмяФайла; 
                ИмяФайлаПриемника = ПутьКуда + "\" + ИмяФайла; 
                ФС_.КопироватьФайл(ИмяФайлаИсточника,ИмяФайлаПриемника,0);// Копируем с перзаписью 

            КонецЕсли;
        КонецЕсли; 
        ИмяФайла = ФС_.НайтиСледующийФайл(); 
    КонецЦикла;                              

конецпроцедуры

а сам вызов 
ПутьОткуда=сокрлп(константа.путь)+"\"; 
                    ПутьКуда=сокрлп(константа.путь2)+"\";  
                    попытка
                        копироватьфайлы(ПутьОткуда,ПутьКуда);    
                    исключение      
                        сообщить(описаниеошибки());
                    конецпопытки;
                    ФС0 = СоздатьОбъект("ФС");  
                    попытка
                        ФС0.удалитькаталог(ПутьОткуда);    
                    исключение   
                        сообщить(описаниеошибки());
                    конецпопытки;
В каталоге который хочу удалить никого нету. Почему не удаляет?  Пишет Ошибка при выполнении команды; и все
   Масянька
 
4 - 05.12.18 - 15:38
(3) Потому что каталог занят эской.
Прикол семерки. А может и в восьмерке такое есть.
   РусскийВедун
 
5 - 05.12.18 - 15:38
(4) проводник без проблем удаляет
   Масянька
 
6 - 05.12.18 - 15:39
(5) Открой этот каталог в эске. Закрой. А потом попробуй удалить проводником (эску не закрывать!).
   РусскийВедун
 
7 - 05.12.18 - 15:46
(6) Удаляет. Или как именно сделать открыть закрыть?
   Масянька
 
8 - 05.12.18 - 15:51
(7) Слегка попутала.
Если в каталоге открыть файл, закрыть. То потом пока эску не закроешь каталог не удалится.

Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует