Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Список файлов в каталоге / 14 сообщений из 14, страница 1 из 1
16.12.2003, 10:18
    #32353488
Deminik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список файлов в каталоге
Как получить список файлов в каталоге ?
...
Рейтинг: 0 / 0
16.12.2003, 10:22
    #32353492
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список файлов в каталоге
Написать цикл с функцией Dir
...
Рейтинг: 0 / 0
16.12.2003, 10:25
    #32353500
Deminik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список файлов в каталоге
Это-то ясно, но очень бы хотелось заиметь гогтовую функцию, возвращающую массив...
...
Рейтинг: 0 / 0
16.12.2003, 10:28
    #32353503
RVI
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
16.12.2003, 10:28
    #32353504
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список файлов в каталоге
Scripting.Folder.Files
...
Рейтинг: 0 / 0
16.12.2003, 11:06
    #32353554
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список файлов в каталоге
вы меня пугаете
все делается
проще
вот пример от Гетца
Dim strFile As String
strFile = Dir("\\Boss\D\БАЗА\")
Do Until strFile = ""
MsgBox strFile
strFile = Dir
Loop
...
Рейтинг: 0 / 0
16.12.2003, 11:23
    #32353584
Serafim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список файлов в каталоге
2 Хам

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

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

все делается

проще

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

Dim strFile As String

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

Do Until strFile = ""

MsgBox strFile

strFile = Dir

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

все делается

проще

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

Dim strFile As String

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

Do Until strFile = ""

MsgBox strFile

strFile = Dir

LoopПроще, не проще, но акс с этим кодом у меня висит намертво и не работает даже в режиме конструктора...fix
...
Рейтинг: 0 / 0
01.10.2018, 12:15
    #39710849
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список файлов в каталоге
пардон, это что-то с модулями в моём аксе. При создвнии новой базы какая-то жесть стала происходить с ошибкой нет модуля.
...
Рейтинг: 0 / 0
01.10.2018, 12:59
    #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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Список файлов в каталоге / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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