|
v7: Как получить список папок | ☑ | ||
---|---|---|---|---|
0
DrRaptor
09.01.13
✎
17:09
|
Нужно получить список папок из каталога.
Сообщить(ФС.НайтиПервыйФайл(КаталогХранения)); Сообщить(ФС.НайтиПервыйФайл(КаталогХранения+"*")); Сообщить(ФС.НайтиПервыйФайл(КаталогХранения+"*.*")); не работают. Файлы находит, а папки нет. как нужно прописать, чтобы папки поймать? |
|||
1
Ёпрст
09.01.13
✎
17:12
|
||||
2
zladenuw
09.01.13
✎
17:12
|
(1) буду знать. спасибо
|
|||
3
DrRaptor
09.01.13
✎
17:17
|
а попроще то нельзя?
|
|||
4
Ёпрст
09.01.13
✎
17:20
|
можно, пробуй
|
|||
5
Ёпрст
09.01.13
✎
17:20
|
тупо рекурсией, например
|
|||
6
Boroda
09.01.13
✎
17:24
|
ФайлОписания = ФС.НайтиПервыйФайл(Папка+"\*.*");
Пока ПустаяСтрока(ФайлОписания)=0 Цикл фс.АтрибутыФайла(Папка+"\"+ФайлОписания,,атр,времясоздания,,,); Если сред(атр,4,1)="1" Тогда // вот это папка ... |
|||
7
DrRaptor
09.01.13
✎
17:50
|
Работает, если вот так:
атр=""; ФайлОписания = ФС.НайтиПервыйФайл(КаталогХранения+"*-*"); Пока ПустаяСтрока(ФайлОписания)=0 Цикл фс.АтрибутыФайла(КаталогХранения+ФайлОписания,,атр,,,,); Если сред(атр,4,1)="1" Тогда // вот это папка Сообщить(СокрЛП(ФайлОписания)); Прервать; КонецЕсли; ФайлОписания = ФС.НайтиСледующийФайл(); КонецЦикла; |
|||
8
DrRaptor
09.01.13
✎
17:51
|
*.* - она не понимает
обязательно нужен какой-то символ из названия папки |
|||
9
Ёпрст
09.01.13
✎
17:52
|
КаталогХранения+"\*.*"
|
|||
10
Ёпрст
09.01.13
✎
17:53
|
можно и так
КаталогХранения+"\.." не помню ужо, давно с ФС ничего не писал |
|||
11
DrRaptor
09.01.13
✎
18:01
|
неа, с точками вообще не катит
а следжик у меня и так уже в КаталогХранения входит |
|||
12
Ёпрст
09.01.13
✎
18:02
|
ну тогда усттекаталог сделай перед этим и ищи без указания каталога
|
|||
13
Vladal
09.01.13
✎
20:03
|
Я как-то задавался подобной задачей. Решил скриптами.
|
|||
14
monsterZE
09.01.13
✎
21:33
|
а чего не работает то??
писал себе разнесенку по отчетам для юзверей типа внешние отчеты по группам группы папки - отчеты - файлы в них все работает.. подставил сейчас *.* в фильтр - добавились все каталоги |
|||
15
monsterZE
09.01.13
✎
21:36
|
Процедура ОбновитьКаталоги(Путь);
//Форма.Закладки.УдалитьВсе(); //ИмяФайла = ФС.НайтиПервыйФайл(Путь+"*.ert"); ИмяФайла = ФС.НайтиПервыйФайл(Путь+"*.*"); Пока ИмяФайла <> "" Цикл АтрибутыФайла = ПолучитьПустоеЗначение(); ФС.АтрибутыФайла(Путь+ИмяФайла,,АтрибутыФайла,,,,); ЭтоКаталог = ?(Прав(Лев(АтрибутыФайла,4),1)="1",1,0); Если ЭтоКаталог=1 Тогда Форма.Закладки.ДобавитьЗначение(Путь+ИмяФайла+"\",Обрезать(ИмяФайла)); КонецЕсли; ИмяФайла = ""; ИмяФайла = ФС.НайтиСледующийФайл(); КонецЦикла; КонецПроцедуры |
|||
16
DrRaptor
10.01.13
✎
10:23
|
Все работает, я же написал уже.
Просто маска "*.*" не воспринимается - точка только для файлов, папки так не находятся. А вот "*-*" (для папки "АВ-1200...") или "А*" (для папки "А123...")отлично работает. |
|||
17
monsterZE
10.01.13
✎
10:28
|
(16) я мож не догоняю чего =) в (15) у меня выводит все папки диска с: например..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |