当文件名可更改时,VB.NET上传到FTP失败

时间:2014-09-26 14:11:22

标签: vb.net ftp

我正在尝试将TXT文件上传到FTP站点。代码可以使用预定义的名称正常工作,但理想情况下,txt文件名将带有日期和时间戳。所以我正在使用的代码失败并出现错误“argumentexception未处理 - 路径中的非法章程 - 可能是因为我试图使用通配符作为文件名.....任何想法 - 代码如下。

如何创建文件

Dim filewriter As New System.IO.StreamWriter("C:\file_folder\filename" & "_" & Format(Today(), "yyyymmdd") & "_" & Format(Today(), "hhmmss") & "_ord.txt")

FTP UPLOAD SECTION - WORKS IS FILE NAME IS EXACT.

'Open an FTP connection and upload new order file

Dim request As System.Net.FtpWebRequest = directCast(System.Net.WebRequest.Create("ftp://ftp.FTPADDRESS.com/ed2*"), System.Net.FtpWebRequest)
request.Credentials = New System.Net.NetworkCredential("USER", "PASS")
request.Method = System.Net.WebRequestMethods.Ftp.UploadFile

**********ERROR HAPPENS HERE****************

Dim file() As Byte = System.IO.File.ReadAllBytes("C:\file_folder\filename*")
*******************************************

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

2 个答案:

答案 0 :(得分:2)

感谢您的指导,我在几个月后对此进行了整理,但认为值得发布修复。

 Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("ftp://ftpaddress" & "_" & Now.ToString("yyyyMMdd_HHmmss") & "_ORD.txt"), System.Net.FtpWebRequest)
            request.Credentials = New System.Net.NetworkCredential("user", "pass")
                request.Method = System.Net.WebRequestMethods.Ftp.UploadFile
                Dim file() As Byte = System.IO.File.ReadAllBytes(order_file)
                Dim strz As System.IO.Stream = request.GetRequestStream()
                strz.Write(file, 0, file.Length)
                strz.Close()
                strz.Dispose()

答案 1 :(得分:0)

该方法不接受通配符,并且需要您要转换为字节数组的文件的完整路径,您尝试使用的字符无效。

您是否能够将完整文件路径存储在变量中,然后将变量传递给System.IO.File.ReadAllBytes()?