上传FTP VB.NET时文件名错误

时间:2014-10-08 11:50:20

标签: vb.net ftp

我有一个简单的程序可以获取目录中的所有文件(jpg图像)并将它们上传到我的FTP。

我的问题是文件名,我无法使用完整路径+文件名上传图片。

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))

但是当我尝试运行它,而不是给我文件名时,它给了我一个File not Found异常(它试图在/bin/debug folder中查找文件,它与{{无关} 1}},所以我不知道为什么会这样做,我以前在ListView中使用它并且它运行良好)。

接下来我尝试将其子串:

c:\ImagesTemp

但我还是举个例子:namefile=File.Substring(13) 而不是C:\Big_image.jpg,所以找不到另一个文件异常。

我现在迷路了,我知道那里可能有一个愚蠢的错误,但我似乎无法找到它。如果你们能给我看灯,我会非常感激。

抱歉我的英文不好,谢谢。

更新

好的,所以使用答案中提供的代码我设法在使用子字符串时修复C:\ part。现在问题是系统文件未找到异常,它仍然在VS的bin / Debug /文件夹中查找图像(尚未编译)。代码看起来像这样:

C:\ImagesTemp\Big_image.jpg

1 个答案:

答案 0 :(得分:0)

  

对于每个文件在文件阵列

这是你的问题,File是System.IO中的一个类

更改为

之类的其他内容
  

对于每个 _file 在文件阵列

...正如它是另一个很好的例子,打开 Option Strict

这可以按预期工作

Dim filearray() As String
filearray = IO.Directory.GetFiles("C:\Images")
For Each _f As String In filearray
    My.Computer.Network.UploadFile(_f, "ftp://trololweb.es/ImagenesRedimensionadas/" & IO.Path.GetFileName(_f), "user", "pass", True, 50, FileIO.UICancelOption.ThrowException)
    MessageBox.Show(_f)
Next