Выбрать не один а сразу несколько файлов?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dotez
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 11.04.2011 (Пн) 20:19

Выбрать не один а сразу несколько файлов?

Сообщение dotez » 11.04.2011 (Пн) 20:34

Собственно ситуация такая есть в проге встроенный фтп клиентик который по нажатию кнопки скачивает определенный файл, код выглядит так-
Код: Выделить всё
Dim lTimer As Long
   Dim strRemote As String

  mFTP.SetFTPDirectory (txtDirect.Text)

   strRemote = Trim("3.txt")

   lTimer = Timer
   If strRemote <> "" Then

              If Not mFTP.FTPDownloadFile("3.txt", strRemote) Then

                   MsgBox mFTP.GetLastErrorMessage
                Else
                   MsgBox "Загрузка завершена за " & Format(Timer - lTimer, "###,##0.00") & " секунд."
              End If
           End If


Собственно как видно это файл 3.txt так вот теперь задача стоит такая чтобы он скачивал ВСЕ файлы из данной директории с расширением .txt
пробовал вот так- *.txt не помогает.....
перечислять файлы я не могу так как названия у них всегда разные, нужно его заставить качать именно ВСЕ.txt ))

И еще момент, при этом раскладе он скачивает файл просто в папку где находится сама прога, а как прописать ему конкретную папку куда их все скачивать?

ProgEXEr
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 7
Зарегистрирован: 26.01.2011 (Ср) 14:14
Откуда: Земной шар, Россия, Камчатский край, г. Петропавловск-Камчатский

Re: Выбрать не один а сразу несколько файлов?

Сообщение ProgEXEr » 12.04.2011 (Вт) 6:41

Что это за модуль (класс) mFTP? Приведи его исходный код.
Тяжела и неказиста жизнь простого программиста...

dotez
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 11.04.2011 (Пн) 20:19

Re: Выбрать не один а сразу несколько файлов?

Сообщение dotez » 12.04.2011 (Вт) 15:42

Собственно я решил пойти немного другим путем, есть listview в который теперь вывоится весь список файло вот такой функцией-

Код: Выделить всё
Public Function GetDirectoryListing(sFilter As String) As cDirList
    Dim szDir As String             'В·ѕ¶
    Dim hFind As Long               'С°ХТѕд±ъ
    Dim nLastError As Long          'ЧоєуТ»ёцґнОу
    Dim dError As Long              'ґнОу
    Dim ptr As Long                 'ЦёХл
    Dim pData As WIN32_FIND_DATA    'КэѕЭ
    Dim sFilename As String         'ОДјюГы
       
    Set mDirCol = Nothing
    hFind = FtpFindFirstFile(hConnection, sFilter, pData, 0, 0)
    nLastError = Err.LastDllError
    If hFind = 0 Then
        If (nLastError <> ERROR_NO_MORE_FILES) Then
            ErrorOut Err.LastDllError, "FtpFindFirstFile"
        End If
        Exit Function
    End If
   
    dError = NO_ERROR
    Dim bRet As Boolean

    sFilename = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0), vbBinaryCompare) - 1)
    mDirCol.Add pData.dwFileAttributes, Win32ToVbTime(pData.ftCreationTime), Win32ToVbTime(pData.ftLastAccessTime), Win32ToVbTime(pData.ftLastWriteTime), pData.nFileSizeLow, sFilename
    Do
        pData.cFileName = String(MAX_PATH, 0)
        bRet = InternetFindNextFile(hFind, pData)
        If Not bRet Then    'іцґн
            dError = Err.LastDllError
            If dError = ERROR_NO_MORE_FILES Then
                Exit Do
            Else
                ErrorOut Err.LastDllError, "InternetFindNextFile"
                InternetCloseHandle (hFind)
                Exit Function
            End If
        Else
            sFilename = Left(pData.cFileName, InStr(1, pData.cFileName, _
                String(1, 0), vbBinaryCompare) - 1)
            mDirCol.Add pData.dwFileAttributes, Win32ToVbTime(pData.ftCreationTime), _
                    Win32ToVbTime(pData.ftLastAccessTime), Win32ToVbTime(pData.ftLastWriteTime), _
                    pData.nFileSizeLow, sFilename
            'МнјУРВФЄЛШ
        End If
    Loop
       
    Set GetDirectoryListing = mDirCol
    InternetCloseHandle (hFind)
End Function


вот где тут ему можно поставить ограничение чтобы выводился только список .TXT файлов?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Выбрать не один а сразу несколько файлов?

Сообщение Antonariy » 12.04.2011 (Вт) 16:45

Перед mDirCol.Add.
Эта функция ничего не выводит в listview, она составляет коллекцию найденных файлов.
Лучший способ понять что-то самому — объяснить это другому.

dotez
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 11.04.2011 (Пн) 20:19

Re: Выбрать не один а сразу несколько файлов?

Сообщение dotez » 12.04.2011 (Вт) 16:50

И как это сформулировать?? я пртсо не представляю как в коде может выглядеть ограничение на расширение...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Выбрать не один а сразу несколько файлов?

Сообщение Antonariy » 12.04.2011 (Вт) 17:05

Проверить последние три символа имени файла.
Лучший способ понять что-то самому — объяснить это другому.

dotez
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 11.04.2011 (Пн) 20:19

Re: Выбрать не один а сразу несколько файлов?

Сообщение dotez » 12.04.2011 (Вт) 17:36

Напишите кто нит стрчоку такой проверки, я проверю, будет работаь или нет.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Выбрать не один а сразу несколько файлов?

Сообщение Antonariy » 12.04.2011 (Вт) 21:30

Ппц... А сколько пафоса, пойти, мол, другим путем... Может пойти в асфальтоукладчики?
Код: Выделить всё
If Right(sFilename,3)="txt" then
Лучший способ понять что-то самому — объяснить это другому.

dotez
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 11.04.2011 (Пн) 20:19

Re: Выбрать не один а сразу несколько файлов?

Сообщение dotez » 12.04.2011 (Вт) 22:47

спасибо, все заработало;)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Выбрать не один а сразу несколько файлов?

Сообщение alibek » 13.04.2011 (Ср) 9:23

Antonariy писал(а):
Код: Выделить всё
If Right(sFilename,3)="txt" then

Следовало бы привести к одному регистру. И проверять 4 символа, а не 3.
И чем не нравится like?
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 103

    TopList