Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Список файлов Добавлено: 15.11.05 16:41  

Автор вопроса:  Tamplier | ICQ: 298742928 
Как можно получить список файлов в папке?

Ответить

  Ответы Всего ответов: 22  

Номер ответа: 1
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #1 Добавлено: 15.11.05 17:16
Можно vb-функцией Dir, можно api FindFirstFile/FindNextFile, можно DlgDirList

Ответить

Номер ответа: 2
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #2 Добавлено: 15.11.05 17:53
Можно еще через FSO и FileListBox. ИМХО, несколько проще.

Ответить

Номер ответа: 3
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #3 Добавлено: 15.11.05 17:56
Кстати, у меня вопрос:
Как получить массив со списком ВСЕХ файлов на диске?

Ответить

Номер ответа: 4
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #4 Добавлено: 15.11.05 17:59
Рекурсия от корня. Только не забыть про скрытые. Были примеры на чем угодно, от FSO до Dir и DirListBox :)

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 15.11.05 20:31
полно примеров! лень?

Ответить

Номер ответа: 6
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #6 Добавлено: 15.11.05 20:55
Рекурсию даж я помнится выкладывал, но через АПИ лучше, быстрее получается.

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 15.11.05 20:58
Кстати, у меня вопрос:
Как получить массив со списком ВСЕХ файлов на диске?


Быстро найти смог в список, впрочем чуть переделать - 5 мин, зато будет чем тебе занятся :)

Option Explicit
Private Const MAX_PATH = 260
Private Const INVALID_HANDLE_VALUE = -1
Private Const FILE_ATTRIBUTE_DIRECTORY As Long = &H10

Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
End Type

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Private Sub InterateObject(Source As String)
Dim objName As String
Dim hSearch As Long
Dim WFD As WIN32_FIND_DATA
Dim Cont As Integer

    Cont = True
    hSearch = FindFirstFile(Source & "*", WFD)
    If hSearch <> INVALID_HANDLE_VALUE Then
        Do While Cont
            objName = Left(WFD.cFileName, InStr(WFD.cFileName, Chr(0)) - 1)
            If Not (objName = "." Or objName = "..";) Then
                If (WFD.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) = 0 Then
                    List1.AddItem Source & objName
                Else
                    InterateObject Source & objName & "\"
                End If
            End If
           Cont = FindNextFile(hSearch, WFD)
        Loop
        Cont = FindClose(hSearch)
    End If
End Sub

Private Sub Command1_Click()
Dim dblTimer As Double
    dblTimer = Timer
    List1.Clear
    InterateObject "C:\"
    Debug.Print Round(Timer - dblTimer, 2)
End Sub

Ответить

Номер ответа: 8
Автор ответа:
 Tamplier



ICQ: 298742928 

Вопросов: 58
Ответов: 340
 Профиль | | #8 Добавлено: 18.11.05 13:38
FindFirstFile/FindNextFile

А этим как? %( Дать только имя папки, так что ли? А то я раньше, когда пользовался только полное имя задавал...

Ответить

Номер ответа: 9
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #9 Добавлено: 18.11.05 14:43
FindFirstFile/FindNextFile

А этим как? %( Дать только имя папки, так что ли? А то я раньше, когда пользовался только полное имя задавал...


Tamplier А ты ответы то читаешь? №7 от HACKERа

Ответить

Номер ответа: 10
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #10 Добавлено: 20.11.05 22:20
А нафига FSO юзать?
1. Прога требует DLL-шку;
2. Почти все (или все) ф-ции этого FSO реализуемы с помощью стандартных ф-ций VB.

Ответить

Номер ответа: 11
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #11 Добавлено: 21.11.05 11:06
1. Эта DLL-ка имеется практически на любой машине.
2. Не нужно переписывать уже написанный код, причем не кривыми руками :)

Ответить

Номер ответа: 12
Автор ответа:
 Tamplier



ICQ: 298742928 

Вопросов: 58
Ответов: 340
 Профиль | | #12 Добавлено: 21.11.05 12:51
2AndreyMp:
Я код сохранил не читая... Тока потом, когда смотрел нашел.

Ответить

Номер ответа: 13
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #13 Добавлено: 21.11.05 21:14
2 LOL: насчет кривых рук, imho, это у кого как. Кто может написать код (того же чтения файла), кто нет. Тем более, на старых компах DLL-ки может и не быть. Мало ли

Ответить

Номер ответа: 14
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #14 Добавлено: 22.11.05 11:27
Кто может - тот спрашивать не будет :)
В FSO все это организовано достаточно удобно. А про старые компы, ИМХО, стоит уже давно забыть - уже и 2000 не найдешь, все на ХРени сидят. Ежели еще и 95 вспомнить - там мнооого чего нет, так что в любом случае дистриб готовить :)

Ответить

Номер ответа: 15
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #15 Добавлено: 22.11.05 20:26
2 LOL:
Кто может - тот спрашивать не будет :)

Логично :)
А про старые компы, ИМХО, стоит уже давно забыть

Ну есть же особые челы, у которых старый добрый Win95/98 стоит. А хороший автор, imho, должен "заботится" о работоспособности своей проги на всех компах.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам