我正在尝试将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()
答案 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()?