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