![]() |
![]() |
![]() |
|
Как проверить существует каталог или нет? | ☑ | ||
---|---|---|---|---|
0
rud99
22.12.08
✎
07:27
|
требуется проверить существование каталога! Про существование файла все понятно, а вот проверку каталогов на существование......?
|
|||
1
povar
22.12.08
✎
07:30
|
есть разница ?
|
|||
2
rud99
22.12.08
✎
07:32
|
тоесть можно в качестве параметра при проверке на существование файла можно передать не имя файла а имя каталога?
|
|||
3
Нуф-Нуф
22.12.08
✎
07:33
|
(2) шансы есть, попробуй
|
|||
4
skunk
22.12.08
✎
07:35
|
фс.СуществуетФайл("c:\1") = 1
фс.СуществуетФайл("c:\12") = 0 |
|||
5
vcv
22.12.08
✎
10:48
|
Только еще атрибуты проверить надо. Вдруг это все же файл.
|
|||
6
грязный
22.12.08
✎
10:49
|
Если ФС.Существуетфайл(стрКаталогФайлов+"\NUL")=0 Тогда
ФС.СоздатьКаталог(стрКаталогФайлов); КонецЕсли; |
|||
7
YF
22.12.08
✎
10:49
|
//------- © YF --------------------
// Функция проверяет существует ли каталог или файл <_путь> // В отличие от стандартного метода ФС, проверяет действительно ли // это файл или каталог. // Возвращает 1 или 0 // _путь - строка с путем к файлу/каталогу // _чтоИщем: 0 - файл, 1 - каталог, 2 - все равно что, лишь бы было Функция глСуществуетФайл(Знач _путь, Знач _чтоИщем = 0) Экспорт // Удалим слэш в конце, иначе криво отработает ФС.АтрибутыФайла() путь_ = СокрЛП(_путь); Если (Прав(путь_, 1) = "\") или (Прав(путь_, 1) = "/") Тогда путь_ = Лев(путь_, СтрДлина(путь_) - 1); КонецЕсли; //(Прав(путь_, 1) = "\") или (Прав(путь_, 1) = "/") // Теперь посмотрим наличие файла/каталога Если ФС.СуществуетФайл(путь_) = 0 Тогда возврат 0; ИначеЕсли _чтоИщем = 2 Тогда // Итак, мы уверены, что что-то есть, а раз не важно, // что именно, то и вернем единичку возврат 1; Иначе // Файл/каталог существует, теперь выясним, файл это или каталог атрибуты_=""; ФС.АтрибутыФайла(путь_,"",атрибуты_); файлЛи_ = глНе(Число(Сред(атрибуты_,4,1))); Возврат ((файлЛи_+_чтоИщем) % 2); КонецЕсли; //ФС.СуществуетФайл(_каталог) = 0 КонецФункции //глСуществуетКаталог |
|||
8
rud99
22.12.08
✎
10:56
|
спасибо всем! решил проблему сл образом!
Функция СтроитьПуть() // путь до года вид (...\2008) ПутьДоГода=СокрП(Константа.ФайловоеХранилище)+ДатаГод(ДатаДок); // путь до номера вид (...\2008\22) ПутьДоНомера=ПутьДоГода+"\"+СокрЛ(НомерДок); // сначала проверяем есть ли каталог года Если ФС.СуществуетФайл(ПутьДоГода)=0 Тогда ФС.СоздатьКаталог(ПутьДоГода); Сообщить("Создан каталог:"+ПутьДоГода,"I"); КонецЕсли; // проверяем есть ли папка с номером Если ФС.СуществуетФайл(ПутьДоНомера)=0 Тогда Сообщить("Создан каталог:"+ПутьДоНомера,"I"); ФС.СоздатьКаталог(ПутьДоНомера); КонецЕсли; Возврат ПутьДоНомера;// ф-я возвращает значение полного пути до файлов КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |