powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получение списка файлов из указанной директории и всех её поддиректорий...
15 сообщений из 15, страница 1 из 1
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32913680
MrDDT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно получить список файлов указанной директории и всех её поддиректорий (неограниченно "в глубину"). Как, например, это делает WinAmp при открытии директории c установленной галочкой "Recurse subdirectories".
Я рассмотрел функцию Dir, но что-то она меня не вдохновила. :( Как определить что из выдаваемых значений является файлом, а что папкой? Я так понял Dir не может искать только папки.
Ну да ладно, отличить файл от папки можно прибегнув к кое-каким извращённым действиям. :) Но, всёравно, реализация моей задачи (теми способами, которые мне извесны) представляется мне УЖ СЛИШКОМ извратной и слишком сложной для такой простой задачи как получение списка файлов. Как стрелять по мухе из базуки. :)

Кто сталкивался с подобной задачей, поделитесь опытом, пожалуйста!
Спасибо за внимание и участие! :)
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32913708
Ну и кто вас учил пользоваться хелпом ?

' 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
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32913766
MrDDT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой преподНу и кто вас учил пользоваться хелпом ?
Был бы у меня хелп, я бы учился им пользоваться. :) А у меня только книжка (в картинках) ;) , а там, как понимаете, далеко не всё описано.

If MyName <> "." And MyName <> ".." Then
Кстати, хотел спросить... Что означают эти точки, которые Dir выдаёт в начале...?

If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
А зачем вот этот кусочек кода: "... And vbDirectory ..."???

Спасибо! Функцию GetAttr я не знал... А можно полностью синтаксис?

И всё-таки... Для получения списка файлов таки придётся использовать циклы? Варианта проще нет?
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32913799
нет хелпа , это что кнопка Фы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
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32913898
MrDDT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой препод
А почему бы тогда не сделать так...
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
Ваще ничё не понял :)
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32913913
в командной строке выполни
эту команду и посмотри в появившийся файл
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32913986
MrDDT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я что подумал-то...
Всёравно же ведь придётся проверять все выдаваемые Dir'ом значения, проверяя папка это или нет?.. Это ж сколько ресурсов уходит на такое простое дело!
Более изящного и экономичного решения нет?.. :(
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32914031
Ты тупой?
проверь сначала результат
там только папки
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32914099
MrDDT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дас ис фантастиш! :)
Только как это сделать из ВБ?..
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32914104
MrDDT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...в смысле как отдать эту строку на выполнение из ВБ?..
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32914115
Shell "dir /b /s....." , 0

А Фы1 реально не работает?
или хелпом воспользоваться религия не позволяет?
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32914232
MrDDT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой преподShell "dir /b /s....." , 0
Благодарю!

А Фы1 реально не работает?
Да нету у меня никаких хелпов. ВБ на 1-м диске. При нажатии "Фы1" он меня посылает ... за хелпом. :)

или хелпом воспользоваться религия не позволяет?
А религия всё позволяет. Ибо атеист :)
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32914408
А в Ёкселе или Ворде чё ?
там такой же хелп
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32914472
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собсно весь хелп точно так же можно найти на сайте мелкомягких.
Это на случай если нет елселя и ворда. :)

Magnus
...
Рейтинг: 0 / 0
Получение списка файлов из указанной директории и всех её поддиректорий...
    #32915507
MrDDT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашёл!
Злой препод, Magnus23 большое спасибо!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получение списка файлов из указанной директории и всех её поддиректорий...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]