2014-10-08 119 views
0

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

回答

0

对于每个文件在filearray

这是你的问题,文件是一个System.IO类

切换到别的东西像

For Each _file在filearray

...而且因为这是它的另一个很好的例子,打开选项严格

此按预期工作

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 
+0

谢谢回复。我会一直在寻找如何关闭Option Strict,并学习如何解决它。但是,与此同时,我尝试了您的代码和子字符串,但是我仍然获得C:\ imagename.jpg而不是只有imagename.jpg。 – 2014-10-08 13:06:38

+0

我更新了代码,我忘了文件名需要添加到FTP服务器。只是尝试和工作没有问题。 你在哪一行得到你的异常? – 2014-10-08 13:25:44

+0

哦,完全工作!我正在考虑这个问题,就像我怎么能告诉用文件路径来检索文件名,以便能够找到它并且同时没有路径,这样我就可以得到正确的名称。非常感谢你 !试图upvote你,但似乎我太多这个新的成员。你做了我的一天,谢谢。 – 2014-10-08 14:00:54