|
|
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
Нужно получить список файлов указанной директории и всех её поддиректорий (неограниченно "в глубину"). Как, например, это делает WinAmp при открытии директории c установленной галочкой "Recurse subdirectories". Я рассмотрел функцию Dir, но что-то она меня не вдохновила. :( Как определить что из выдаваемых значений является файлом, а что папкой? Я так понял Dir не может искать только папки. Ну да ладно, отличить файл от папки можно прибегнув к кое-каким извращённым действиям. :) Но, всёравно, реализация моей задачи (теми способами, которые мне извесны) представляется мне УЖ СЛИШКОМ извратной и слишком сложной для такой простой задачи как получение списка файлов. Как стрелять по мухе из базуки. :) Кто сталкивался с подобной задачей, поделитесь опытом, пожалуйста! Спасибо за внимание и участие! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 09:00:50 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
Ну и кто вас учил пользоваться хелпом ? ' Display the names in C:\ that represent directories. MyPath = "c:\" ' Set the path. MyName = Dir(MyPath, vbDirectory) ' Retrieve the first entry. Do While MyName <> "" ' Start the loop. ' Ignore the current directory and the encompassing directory. If MyName <> "." And MyName <> ".." Then ' Use bitwise comparison to make sure MyName is a directory. If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then Debug.Print MyName ' Display entry only if it End If ' it represents a directory. End If MyName = Dir ' Get next entry. Loop ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 09:20:14 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
Злой преподНу и кто вас учил пользоваться хелпом ? Был бы у меня хелп, я бы учился им пользоваться. :) А у меня только книжка (в картинках) ;) , а там, как понимаете, далеко не всё описано. If MyName <> "." And MyName <> ".." Then Кстати, хотел спросить... Что означают эти точки, которые Dir выдаёт в начале...? If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then А зачем вот этот кусочек кода: "... And vbDirectory ..."??? Спасибо! Функцию GetAttr я не знал... А можно полностью синтаксис? И всё-таки... Для получения списка файлов таки придётся использовать циклы? Варианта проще нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 09:53:04 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
нет хелпа , это что кнопка Фы1 не работает ? эта текущая и родительская директория Returns an Integer representing the attributes of a file, directory, or folder. Syntax GetAttr(pathname) The required pathname argument is a string expression that specifies a file name. The pathname may include the directory or folder, and the drive. Return Values The value returned by GetAttr is the sum of the following attribute values: Constant Value Description vbNormal 0 Normal. vbReadOnly 1 Read-only. vbHidden 2 Hidden. vbSystem 4 System file. Not available on the Macintosh. vbDirectory 16 Directory or folder. vbArchive 32 File has changed since last backup. Not available on the Macintosh. vbAlias 64 Specified file name is an alias. Available only on the Macintosh. Note These constants are specified by Visual Basic for Applications. The names can be used anywhere in your code in place of the actual values. Remarks To determine which attributes are set, use the And operator to perform a bitwise comparison of the value returned by the GetAttr function and the value of the individual file attribute you want. If the result is not zero, that attribute is set for the named file. For example, the return value of the following And expression is zero if the Archive attribute is not set: Result = GetAttr(FName) And vbArchive A nonzero value is returned if the Archive attribute is set. Ну ещё можно сделать dir /b /s /Ad c:\ >c:\1.1 а потом считать содержимое файла c:\1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 10:08:21 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
Злой препод А почему бы тогда не сделать так... If (GetAttr(MyPath & MyName) And vbDirectory) > 0 Then ' ЭТО ПАПКА Не понимаю, зачем надо сравнивать с той же самой vbDirectory ?.. :( Или вот так вообще сделать... If GetAttr(MyPath & MyName) > 15 Then ' ЭТО ПАПКА Ну ещё можно сделать dir /b /s /Ad c:\ >c:\1.1 а потом считать содержимое файла c:\1.1 Ваще ничё не понял :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 10:52:06 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
в командной строке выполни эту команду и посмотри в появившийся файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 10:55:39 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
Я что подумал-то... Всёравно же ведь придётся проверять все выдаваемые Dir'ом значения, проверяя папка это или нет?.. Это ж сколько ресурсов уходит на такое простое дело! Более изящного и экономичного решения нет?.. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 11:16:43 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
Ты тупой? проверь сначала результат там только папки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 11:36:59 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
Дас ис фантастиш! :) Только как это сделать из ВБ?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 12:02:59 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
...в смысле как отдать эту строку на выполнение из ВБ?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 12:04:39 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
Shell "dir /b /s....." , 0 А Фы1 реально не работает? или хелпом воспользоваться религия не позволяет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 12:06:51 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
Злой преподShell "dir /b /s....." , 0 Благодарю! А Фы1 реально не работает? Да нету у меня никаких хелпов. ВБ на 1-м диске. При нажатии "Фы1" он меня посылает ... за хелпом. :) или хелпом воспользоваться религия не позволяет? А религия всё позволяет. Ибо атеист :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 12:45:36 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
А в Ёкселе или Ворде чё ? там такой же хелп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 14:57:03 |
|
||
|
Получение списка файлов из указанной директории и всех её поддиректорий...
|
|||
|---|---|---|---|
|
#18+
Собсно весь хелп точно так же можно найти на сайте мелкомягких. Это на случай если нет елселя и ворда. :) Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 15:18:45 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32913708&tid=2168223]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
72ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 374ms |

| 0 / 0 |
