我有一個簡單的程序,可以獲取目錄中的所有文件(jpg圖像)並將它們上傳到我的FTP。上傳FTP時文件名錯誤VB.NET
我的問題是文件名,我無法上傳具有完整路徑+文件名的圖像。
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim filearray() As String
filearray = IO.Directory.GetFiles("C:\ImagesTemp")
For Each File In filearray
My.Computer.Network.UploadFile(File, "ftp://trololweb.es/ImagenesRedimensionadas", "user", "pass", True, 500, FileIO.UICancelOption.ThrowException)
MessageBox.Show(File)
Next
End Sub
這是給我的文件名錯誤,所以我試着用:
namefile= Path.GetNameFile(filearray(file))
但是當我嘗試運行它,而不是給我的文件名,它給了我沒有找到文件異常(它試圖尋找/bin/debug folder
中的文件,它與c:\ImagesTemp
無關,所以我不知道爲什麼它會這樣做,我以前在ListView中使用它,並且它工作正常)。
接下來,我想它的子串:
namefile=File.Substring(13)
,但我仍然得到例如:C:\Big_image.jpg
代替C:\ImagesTemp\Big_image.jpg
,所以另一個文件中未發現異常。
我迷路了,我知道那裏可能有一個愚蠢的錯誤,但我似乎無法找到它。如果你們能向我展示燈光,我會非常感激。
對不起,我的英語不好,謝謝。
UPDATE
確定,所以與在回答中提供的代碼我設法解決的C:在使用子串\一部分。現在的問題是系統文件未找到異常,它仍然在VS的bin/Debug /文件夾中查找圖像(還沒有編譯它)。代碼看起來像這樣:
Dim filearray() As String
filearray = IO.Directory.GetFiles("C:\ImagesTemp")
For Each f As String In filearray
Debug.WriteLine(f)
filenom = f.Substring(14)
Debug.WriteLine(filenom)
My.Computer.Network.UploadFile(filenom, "ftp://web.es/ImagenesRedimensionadas", "user", "pass", True, 500, FileIO.UICancelOption.ThrowException)
MessageBox.Show(filenom)
Next
謝謝回覆。我會一直在尋找如何關閉Option Strict,並學習如何解決它。但是,與此同時,我嘗試了您的代碼和子字符串,但是我仍然獲得C:\ imagename.jpg而不是隻有imagename.jpg。 – 2014-10-08 13:06:38
我更新了代碼,我忘了文件名需要添加到FTP服務器。只是嘗試和工作沒有問題。 你在哪一行得到你的異常? – 2014-10-08 13:25:44
哦,完全工作!我正在考慮這個問題,就像我怎麼能告訴用文件路徑來檢索文件名,以便能夠找到它並且同時沒有路徑,這樣我就可以得到正確的名稱。非常感謝你 !試圖upvote你,但似乎我太多這個新的成員。你做了我的一天,謝謝。 – 2014-10-08 14:00:54