Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当文件名可更改时,VB.NET上载到FTP失败_Vb.net_Ftp - Fatal编程技术网

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

当文件名可更改时,VB.NET上载到FTP失败,vb.net,ftp,Vb.net,Ftp,我正在尝试写一个TXT文件上传到FTP站点。代码使用预定义的名称可以正常工作,但是理想情况下,txt文件名将带有日期和时间戳。因此,我正在使用的代码失败,出现了一个错误“argumentexception未处理-路径中的非法特许-可能是因为我试图使用通配符作为文件名…任何想法-代码如下 文件是如何创建的 Dim filewriter As New System.IO.StreamWriter("C:\file_folder\filename" & "_" & Format(Tod

我正在尝试写一个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()

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


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

谢谢您的指导,几个月前我就解决了这个问题,但认为发布修复程序是值得的

 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()

这是我最近的一个想法……我仍在努力解决这个问题。将“公共文件名”作为文件“但是,尚未确定如何将创建的文件分配给变量。如果您想帮助决定构造方法的最佳方式,请您解释创建和上载文件的上下文,我很乐意尽我所能提供帮助。