远程服务器返回错误:(550)文件不可用(例如,找不到文件,没有访问)VB.NET错误

时间:2016-12-20 09:40:24

标签: vb.net ftp stream

我正在努力理解这个错误的概念,因为我有以下信息:

    ' Year (For Folder Name)
    Dim Year As String
    Year = Date.Today.Year
    ' Month (For Folder Name)
    Dim Month1 As String
    Month1 = MonthName(Month(Now()), False)
    ' Current Date (For File Name)
    Dim todaysDate As String
    todaysDate = Date.Now.ToString("dd-MM-yyyy")

    Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("directory" + Year + "\" + Month1 + "\" + todaysDate + ".csv"), System.Net.FtpWebRequest)
    request.Credentials = New System.Net.NetworkCredential("user", "password")
    request.Method = System.Net.WebRequestMethods.Ftp.UploadFile
    Console.WriteLine("Connected Successfully")

    Dim file() As Byte = System.IO.File.ReadAllBytes("directory" + Year + "\" + Month1 + "\" + todaysDate + ".csv")

    Dim strz As System.IO.Stream = request.GetRequestStream()
    strz.Write(file, 0, file.Length)
    strz.Close()
    strz.Dispose()

错误发生在以下行:

    Dim strz As System.IO.Stream = request.GetRequestStream()

错误:

  

远程服务器返回错误:(550)文件不可用(例如,   找不到文件,没有访问权限)VB.NET错误

我输入的所有信息都是正确的,我只是在努力理解为什么这是错误,因为我在网上找到了这个,其他人似乎都推荐它。如果有人可以向我解释为什么?

1 个答案:

答案 0 :(得分:0)

WebRequest.Create的参数是一个网址。

你正在传递:

"directory" + Year + "\" + Month1 + "\" + todaysDate + ".csv"

这显然是错的。

  1. 不是网址。该网址必须以ftp://hostname开头。虽然我假设你实际上有ftp://hostname,否则你会得到一个完全不同的错误。 如果您没有向我们展示真实的代码,那么很难帮助您。
  2. 你必须使用正斜杠。
  3. 网址必须是:

    "ftp://ftp.example.com/directory/" + Year + "/" + Month1 + "/" + todaysDate + ".csv"