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

  • Автор темы physik_gumanitar
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

physik_gumanitar

Гость
#1
Доброго времени суток госпада Программеры!!!

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

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

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

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

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

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

physik_gumanitar

Гость
#2
Неужели все такие умные, что пояснить какую то простейшую функцию, как она должна работать, ниже вашего достоинства??? Либо в ламы??? :blink:
 
D

Dr.Uid

Гость
#3
Попробуй СОКРЛП(Имя_Каталога)... почти на 100% уверен что поможет...

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

physik_gumanitar

Гость
#4
Попробуй СОКРЛП(Имя_Каталога)... почти на 100% уверен что поможет...

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

Dr.Uid

Гость
#5
Это ж сколько геморою... написать
ФС.УдалитьКаталог(СокрЛП(Путь));

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

:blink:
Не смеши...
 

vbs

Well-Known Member
18.02.2007
1 708
3
#6
для physik_gumanitar
Я вот попробовал все варианты, и все кончаются (начинаются то бишь) на 8-ю букву алфавита.
Увы, видимо глюк программы 1С (и такое встречается)
 
K

kaa

Гость
#7
Попробуйте вместо УдалитьКаталог УдалитьФайл
 
J

jj_mail

Гость
#9
Пишем вместо Пути конктретную папку (вернее путь к ней) все работает безупречно
Каким образом явно указать путь к папке ? У меня ни явно, ни через переменную не сработало
 
K

kaa

Гость
#10
<!--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Каталог());
ФС.НайтиПервыйФайл("*.*");
ФС.УдалитьКаталог(Путь); //непосредственное удаление
КонецПроцедуры
 
P

physik_gumanitar

Гость
#12
Каким образом явно указать путь к папке ? У меня ни явно, ни через переменную не сработало
Просто. указав конкретную папку... т.е. путь к папке... Типо "C:\Downloads\Программы"... жеская привязка работает... Переменая же нет...
 
P

physik_gumanitar

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

Процедура Удаление()
ФС.УстТекКаталог(ФС.WindowsКаталог());
ФС.НайтиПервыйФайл("*.*");
ФС.УдалитьКаталог(Путь); //непосредственное удаление
КонецПроцедуры
Спасибо, все работает. Вот только удаление происходит только в том случае, если директория пустая, это уже не так важно...
Дальнейшая судьба всего того с чего начиналось, близится к успешному завершению...
Всем мои благодарности!!! В частности kaa...
 
Статус
Закрыто для дальнейших ответов.