ОБСУЖДЕНИЕ

Как правильно кодить... УдалитьКаталог();

12 ответов 9,2 тыс.
AI-выжимка обсуждения скоро

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

Статус
Закрыто для дальнейших ответов.
Автор темы
Доброго времени суток госпада Программеры!!!

На досуге ради развития знаний... Ну и т.п. и т.д.. Есть вопрос.

По поводу команды УдалитьКаталог();..
Вставляю код док-а

Перем Путь, Свершилось;

Процедура ВыборПапки()
ФС.ВыбратьКаталог(Путь,"Удаляемая папка"); //выбираем папку
Свершилось = 1;
КонецПроцедуры

Процедура Удаление()
ФС.УдалитьКаталог(Путь); //непосредственное удаление
КонецПроцедуры

Процедура Делете()
Если Свершилось = 1 Тогда //проверка выполнения Выбора папки
Вопрос("Вы действительно хотите удалить данную папку?",4);
Удаление();
Иначе
Предупреждение("Укажите директорию... Иначе никак");
СтатусВозврата(1);
КонецЕсли;
КонецПроцедуры

Пишем вместо Пути конктретную папку (вернее путь к ней) все работает безупречно. Если же вместо точного пути пишем переменную (путь директории), ни чего не работает, выдает ошибку "Ошибка при выполнении команды;" Может кто че скажет по этому поводу...
 
Неужели все такие умные, что пояснить какую то простейшую функцию, как она должна работать, ниже вашего достоинства??? Либо в ламы??? :blink:
 
Попробуй СОКРЛП(Имя_Каталога)... почти на 100% уверен что поможет...

P.S. Этот совет можно отнести к любым функциям и процедурам работающим с путями и именами файлов...
 
Попробуй СОКРЛП(Имя_Каталога)... почти на 100% уверен что поможет...

P.S. Этот совет можно отнести к любым функциям и процедурам работающим с путями и именами файлов...

Это же сколько геморою... Перепроверки названия директории на длуну... Емае... неужели нет какого либо более вразумительго ответа...
 
Это ж сколько геморою... написать
ФС.УдалитьКаталог(СокрЛП(Путь));

вместо... ФС.УдалитьКаталог(Путь);

:blink:
Не смеши...
 
для physik_gumanitar
Я вот попробовал все варианты, и все кончаются (начинаются то бишь) на 8-ю букву алфавита.
Увы, видимо глюк программы 1С (и такое встречается)
 
Попробуйте вместо УдалитьКаталог УдалитьФайл
 
Попробуйте вместо УдалитьКаталог УдалитьФайл

УдалитьФайл работает в любом случае...
Опять таки вы не вчитываетесь в суть ТЕМЫ.. Вопрос был про УдалитКаталог()...
 
Пишем вместо Пути конктретную папку (вернее путь к ней) все работает безупречно

Каким образом явно указать путь к папке ? У меня ни явно, ни через переменную не сработало
 
<!--QuoteBegin-physik_gumanitar+13:12:2007, 13:02 -->
<span class="vbquote">(physik_gumanitar @ 13:12:2007, 13:02 )</span><!--QuoteEBegin-->УдалитьФайл работает в любом случае...
Опять таки вы не вчитываетесь в суть ТЕМЫ.. Вопрос был про УдалитКаталог()...
[snapback]89707" rel="nofollow" target="_blank[/snapback]​
[/quote]

Вообщем то отывет прос каталог заблокирован попробуйте так:

Процедура Удаление()
ФС.УстТекКаталог(ФС.WindowsКаталог());
ФС.НайтиПервыйФайл("*.*");
ФС.УдалитьКаталог(Путь); //непосредственное удаление
КонецПроцедуры
 
каталог заблокирован

+1

Проблема именно в этом. Только искать первый файл не нужно
Достаточно переопределить текущий каталог
 
Каким образом явно указать путь к папке ? У меня ни явно, ни через переменную не сработало

Просто. указав конкретную папку... т.е. путь к папке... Типо "C:\Downloads\Программы"... жеская привязка работает... Переменая же нет...
 
Вообщем то отывет прос каталог заблокирован попробуйте так:

Процедура Удаление()
ФС.УстТекКаталог(ФС.WindowsКаталог());
ФС.НайтиПервыйФайл("*.*");
ФС.УдалитьКаталог(Путь); //непосредственное удаление
КонецПроцедуры

Спасибо, все работает. Вот только удаление происходит только в том случае, если директория пустая, это уже не так важно...
Дальнейшая судьба всего того с чего начиналось, близится к успешному завершению...
Всем мои благодарности!!! В частности kaa...
 
Статус
Закрыто для дальнейших ответов.