วิธีอัปโหลดไฟล์ที่แก้ไขล่าสุด **พร้อมชื่อไฟล์** ด้วย FTP - VB - รหัสที่ยังขาดหายไป-

มีการแก้ไขชื่อนี้ 1:17:45 AM EST 12/29/56

สวัสดีตอนเช้า,

ขณะนี้ฉันกำลังดำเนินการโซลูชันเพื่อให้โปรแกรมอัปโหลดไฟล์ที่แก้ไขล่าสุดในไดเร็กทอรีเฉพาะไปยังไซต์จัดเก็บข้อมูลออนไลน์ แต่ฉันพบปัญหาที่ระบุไฟล์ที่แก้ไขล่าสุดใน ไดเรกทอรี

ฉันไม่ได้เป็นโปรแกรมเมอร์ แต่เมื่อเร็ว ๆ นี้ฉันได้รับแรงบันดาลใจในการเรียนรู้ 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
ดูเหมือนว่าควรจะใช้งานได้เป็นส่วนใหญ่ แต่ฉันได้รับปัญหากับไฟล์ในบรรทัด: สำหรับแต่ละไฟล์ในไฟล์ ข้อความแสดงข้อผิดพลาดแจ้งว่า: Expression เป็นค่า ดังนั้นจึงไม่สามารถเป็นเป้าหมายของการมอบหมายงานได้ - 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 a 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