我有一个简单的程序,可以获取目录中的所有文件(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