Как загрузить последний измененный файл ** с именем файла ** с помощью FTP - VB - все еще отсутствует код -

Этот заголовок был отредактирован 1:17:45 EST 29 декабря 2013 г.

Доброе утро,

В настоящее время я работаю над решением, позволяющим программе загружать последний измененный файл в определенном каталоге на сайт онлайн-хранилища, но я столкнулся с проблемой, указывающей последний измененный файл в каталог.

Я ни в коем случае не программист, но недавно меня вдохновило изучение VB Script. Все связанные статьи, которые я рассмотрел, включают дополнительные процессы, но я не могу нарезать коды, чтобы успешно их использовать, поэтому я надеюсь, что кто-то может мне помочь.

РЕДАКТИРОВАТЬ * Нет сообщения об ошибке, но я просто не знаю, как сказать программе загрузить последний измененный файл.

Это моя первая публикация на этом сайте, и сообщество здесь отличное! Ниже приведен код:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("FTP://ftp.DRIVEHQ.COM/information.zip"), System.Net.FtpWebRequest)
    request.Credentials = New System.Net.NetworkCredential("username", "password")
    request.Method = System.Net.WebRequestMethods.Ftp.UploadFile

    Dim file() As Byte = System.IO.File.ReadAllBytes("C:\Users\Public\Documents\LAST MODIFIED FILE")

    Dim Strz As System.IO.Stream = request.GetRequestStream()
    Strz.Write(file, 0, file.Length)
    Strz.Close()
    Strz.Dispose()

Также расширение файла, который я ищу, будет .zip. Любой вклад приветствуется!


person Devin V.    schedule 27.12.2013    source источник
comment
Какую проблему или ошибку вы получаете?   -  person Adam    schedule 27.12.2013
comment
Если я укажу файл, программа работает отлично. Я не получаю сообщение об ошибке, но я просто не знаю, как сказать программе выбрать последний измененный файл в месте для загрузки. Любые идеи?   -  person Devin V.    schedule 27.12.2013
comment
Кажется, я упустил из виду что-то очень важное. Мне нужно загрузить файл с именем, которое ему было присвоено, а не заранее определенному, которое я установил в строке ниже: (System.Net.WebRequest.Create("FTP://ftp.DRIVEHQ.COM/information.zip"), System.Net.FtpWebRequest) Есть идеи, как это преодолеть? Любые советы высоко ценится!   -  person Devin V.    schedule 29.12.2013
comment
Добавьте код, который я предоставил, в начало подпрограммы. Затем используйте fi.Name, чтобы получить имя файла и использовать его при создании ftp-запроса.   -  person MarkHoward02    schedule 29.12.2013
comment
Еще раз спасибо за ваш быстрый ответ, но я не знаю, где именно его разместить. Извините за боль, но есть ли шанс, что вы можете отредактировать ранее отправленный ответ, чтобы включить эту функцию. Если нет я понимаю, а пока попробую.   -  person Devin V.    schedule 29.12.2013
comment
Вчера вечером я пытался собрать все вместе, как вы сказали, и пока это не сработало. Я буду продолжать пытаться, но я ужасно новичок во всем этом.   -  person Devin V.    schedule 30.12.2013
comment
Я обновил его. Извините за задержку. Я не был на SO в течение нескольких дней. Я был занят проектом и отпуском.   -  person MarkHoward02    schedule 03.01.2014
comment
Все хорошо, как всегда, я серьезно благодарю вас за всю вашу помощь. В программном обеспечении есть предупреждение, в котором говорится, что переменная «fi» используется до того, как ей было присвоено значение. Во время выполнения может возникнуть исключение нулевой ссылки. Затем происходит сбой программного обеспечения в строке Strz.Close(), и в соответствующем сообщении говорится, что базовое соединение было закрыто: при приеме произошла непредвиденная ошибка. У вас есть идеи, как это исправить?   -  person Devin V.    schedule 04.01.2014
comment
Я заставил его работать! Я переместил строку Dim file() As Byte = System.IO.File.ReadAllBytes(FileToUpload) над запросом dim, и она работала правильно. Я пытался отредактировать ваш ответ, чтобы показать это изменение, но не смог заставить его отображаться должным образом. Я не могу отблагодарить вас достаточно человек, вы хороший человек.   -  person Devin V.    schedule 09.01.2014


Ответы (1)


Недавно я изучил навигацию по файлам в проекте, который отправляет измененные файлы в Azure.

Попробуй это:

Imports System.IO

Dim Folder As String = "C:\User\Public\Documents\"
Dim Files() As String

'Find all zip files in folder
Files = Directory.GetFiles(Folder, "*.zip", SearchOption.AllDirectories)

Dim fi As FileInfo

Dim FileToUpload As String = ""
Dim LastModifiedTime As DateTime = "1/1/1700"
For Each sFile In Files
    fi = New FileInfo(sFile)
    'Find the last mofified zip file
    If fi.LastWriteTimeUTC > LastModifiedTime Then
        LastModifiedTime = fi.LastWriteTimeUTC
        FileToUpload = sFile
    End If
Next

Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("FTP://ftp.DRIVEHQ.COM/" & fi.Name), System.Net.FtpWebRequest)
request.Credentials = New System.Net.NetworkCredential("username", "password")
request.Method = System.Net.WebRequestMethods.Ftp.UploadFile

Dim file() As Byte = System.IO.File.ReadAllBytes(FileToUpload)

Dim Strz As System.IO.Stream = request.GetRequestStream()
Strz.Write(file, 0, file.Length)
Strz.Close()
Strz.Dispose()
person MarkHoward02    schedule 27.12.2013
comment
Похоже, что по большей части это может работать, но у меня возникает проблема с файлом в строке: для каждого файла в файлах. Сообщение об ошибке гласит: Выражение является значением и поэтому не может быть целью присваивания. - person Devin V.; 27.12.2013
comment
Я изменил его на sFile, чтобы он не конфликтовал с вашей другой переменной file(). - person MarkHoward02; 27.12.2013
comment
Я запустил Visual Studio и смог успешно найти файл и загрузить его. - person MarkHoward02; 27.12.2013
comment
Рад это слышать. Ты тоже! Я тоже новичок в том, чтобы участвовать в StackOverflow. это на самом деле весело и хороший способ разбить монотонность дня. Не могли бы вы отметить мой ответ как ответ, если он помог вам? - person MarkHoward02; 27.12.2013
comment
Я получаю сообщение об ошибке после того, как пытаюсь нажать кнопку, которая его запускает: System.IO.DirectoryNotFoundException was unhandled Message=Could not find part of the path 'C:\User\Public\Documents\'. - person Devin V.; 27.12.2013
comment
Дело в том, что я знаю, что это местоположение действительно, поэтому это немного сбивает с толку. Я рад, что могу оживить ваш день, ха-ха. - person Devin V.; 27.12.2013
comment
Попробуйте C:\Users\Public\Documents. Пользователи с s - person MarkHoward02; 27.12.2013
comment
Я также работаю в колл-центре, поэтому прошу прощения за задержку. когда я изменил его на указанный вами путь, он говорит, что доступ к пути «C:\Users\Public\Documents\My Music\» запрещен. В более подробной информации упоминается Source=mscorlib, не уверен, что это поможет. - person Devin V.; 27.12.2013
comment
Поэтому я протестировал его с папкой на рабочем столе, и он работал отлично! Ты лучший мужчина, надеюсь, у тебя будут отличные выходные. - person Devin V.; 27.12.2013
comment
Кажется, я упустил из виду что-то очень важное. Мне нужно загрузить файл с именем, которое ему было присвоено, а не заранее определенному, которое я установил в строке ниже: (System.Net.WebRequest.Create("FTP://ftp.DRIVEHQ.COM/information.zip"), System.Net.FtpWebRequest) Есть идеи, как это преодолеть? Любые советы высоко ценится! - person Devin V.; 29.12.2013