powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Список файлов в каталоге
14 сообщений из 14, страница 1 из 1
Список файлов в каталоге
    #32353488
Фотография Deminik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как получить список файлов в каталоге ?
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #32353492
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написать цикл с функцией Dir
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #32353500
Фотография Deminik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это-то ясно, но очень бы хотелось заиметь гогтовую функцию, возвращающую массив...
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #32353503
RVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Using the FileSearch Object
Use the FileSearch property to return the FileSearch object. 
The following example searches for files and displays the number 
of files found and the name of each file.

With Application.FileSearch
    If .Execute() >  0  Then
        MsgBox  "There were "  & .FoundFiles.Count & _
             " file(s) found." 
        For i =  1  To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox  "There were no files found." 
    End If
End With
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #32353504
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Scripting.Folder.Files
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #32353554
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы меня пугаете
все делается
проще
вот пример от Гетца
Dim strFile As String
strFile = Dir("\\Boss\D\БАЗА\")
Do Until strFile = ""
MsgBox strFile
strFile = Dir
Loop
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #32353584
Фотография Serafim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Хам

Красиво! очень здорово! Важно знать где что лежит, и в нужный момент достать из шляпы! успех гарантирован!!!
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #32353614
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Хам трамвайный

а сартировка? Пузырьки патом пускать?
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #32353726
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а про сортировку
никто не спрашивал
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #32354338
Michael Vasilev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Deminic: А если нужно еще и все подкаталоги перебрать, тогда сложнее. У Гетца есть пример, недавно сам брал оттуда (книга "Программирование на VB6 b VBA"). Если есть возможность посмотри (там еще обработка "всяких случаев"). Выкладывать длинно получится.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Список файлов в каталоге
    #39710822
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хам трамвайныйвы меня пугаете

все делается

проще

вот пример от Гетца

Dim strFile As String

strFile = Dir("\\Boss\D\БАЗА\")

Do Until strFile = ""

MsgBox strFile

strFile = Dir

LoopПроще, не проще, но акс с этим кодом у не висит намертво и не работает даже в режиме конструктора...
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #39710828
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогер_самоучкаХам трамвайныйвы меня пугаете

все делается

проще

вот пример от Гетца

Dim strFile As String

strFile = Dir("\\Boss\D\БАЗА\")

Do Until strFile = ""

MsgBox strFile

strFile = Dir

LoopПроще, не проще, но акс с этим кодом у меня висит намертво и не работает даже в режиме конструктора...fix
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #39710849
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон, это что-то с модулями в моём аксе. При создвнии новой базы какая-то жесть стала происходить с ошибкой нет модуля.
...
Рейтинг: 0 / 0
Список файлов в каталоге
    #39710877
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть способ получения содержимого каталога через FSO. Нашел то ли здесь, то ли на "Планета Excel"
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
Function FilenamesCollection(ByVal FolderPath As String, Optional ByVal Mask As String = "", _
                              Optional ByVal SearchDeep As Long = 999) As Collection
    ' Получает в качестве параметра путь к папке FolderPath,
    ' маску имени искомых файлов Mask (будут отобраны только файлы с такой маской/расширением)
    ' и глубину поиска SearchDeep в подпапках (если SearchDeep=1, то подпапки не просматриваются).
    ' Возвращает коллекцию, содержащую полные пути найденных файлов
    ' (применяется рекурсивный вызов процедуры GetAllFileNamesUsingFSO)
    
    Dim FSO As Object

    Set FilenamesCollection = New Collection    ' создаём пустую коллекцию
    Set FSO = CreateObject("Scripting.FileSystemObject")    ' создаём экземпляр FileSystemObject
    GetAllFileNamesUsingFSO FolderPath, Mask, FSO, FilenamesCollection, SearchDeep ' поиск
    Set FSO = Nothing    ' очистка строки состояния Excel
End Function

Function GetAllFileNamesUsingFSO(ByVal FolderPath As String, ByVal Mask As String, ByRef FSO, _
                                  ByRef FileNamesColl As Collection, ByVal SearchDeep As Long)
    ' перебирает все файлы и подпапки в папке FolderPath, используя объект FSO
    ' перебор папок осуществляется в том случае, если SearchDeep > 1
    ' добавляет пути найденных файлов в коллекцию FileNamesColl
     On Error Resume Next
     Dim curfold As Object
     Dim fil As Object
     Dim sfol As Variant
     
     Set curfold = FSO.GetFolder(FolderPath)
     If Not curfold Is Nothing Then    ' если удалось получить доступ к папке

        ' раскомментируйте эту строку для вывода пути к просматриваемой
        ' в текущий момент папке в строку состояния Excel
        ' Application.StatusBar = "Поиск в папке: " & FolderPath

         For Each fil In curfold.Files    ' перебираем все файлы в папке FolderPath
            If fil.Name Like "*" & Mask Then FileNamesColl.Add fil.Path
         Next
         SearchDeep = SearchDeep - 1    ' уменьшаем глубину поиска в подпапках
         If SearchDeep Then    ' если надо искать глубже
             For Each sfol In curfold.SubFolders    ' перебираем все подпапки в папке FolderPath
                GetAllFileNamesUsingFSO sfol.Path, Mask, FSO, FileNamesColl, SearchDeep
             Next
         End If
         Set fil = Nothing
         Set curfold = Nothing    ' очищаем переменные
    End If
End Function

Ну и использование. Обрабатывается не только папка, но и входящие в неё подпапки
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Public Sub FileInFolder()
' Пример использования функции
    On Error GoTo FileInFolder_Error
    
     Dim folder$, coll As Collection, File

     folder$ = "\\I-server-one\shara\ОНС_модуль_загрузка\"
     If Dir(folder$, vbDirectory) = "" Then
         MsgBox "Не найдена папка «" & folder$ & "»", vbCritical, "Нет папки"
         Exit Sub        ' выход, если папка не найдена
    End If

    Set coll = FilenamesCollection(folder$) ' можно и так (folder$, "*.xls") - получаем список файлов XLS из папки
    If coll.Count = 0 Then
         MsgBox "В папке «" & Split(folder$, "\")(UBound(Split(folder$, "\")) - 1) & _
                "» нет ни одного подходящего файла!", _
                vbCritical, "Файлы для обработки не найдены"
         Exit Sub        ' выход, если нет файлов
    End If

     ' перебираем все найденные файлы
    For Each File In coll
         Debug.Print File        ' выводим имя файла в окно Immediate
    Next

Exit_FileInFolder:

    On Error GoTo 0
    Exit Sub

FileInFolder_Error:

     MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure FileInFolder"
     Resume Exit_FileInFolder

End Sub
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Список файлов в каталоге
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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