首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上传多个FTP文件

上传多个FTP文件
EN

Stack Overflow用户
提问于 2010-03-05 12:09:03
回答 4查看 4.4K关注 0票数 6

要求,每天晚上上传1500 jpg的图像,下面的代码打开和关闭连接多次,我想知道是否有更好的方法。

...this是一个代码片段,所以这里有一些在别处定义的变量

代码语言:javascript
复制
Dim picClsRequest = DirectCast(System.Net.WebRequest.Create(ftpImagePath), System.Net.FtpWebRequest)
Dim picClsStream As System.IO.Stream

Dim picCount As Integer = 0
For i = 1 To picPath.Count - 1
    picCount = picCount + 1
    log("Sending picture (" & picCount & " of " & picPath.Count & "):" & picDir & "/" & picPath(i))
    picClsRequest = DirectCast(System.Net.WebRequest.Create(ftpImagePath & "/" & picPath(i)), System.Net.FtpWebRequest)
    picClsRequest.Credentials = New System.Net.NetworkCredential(ftpUsername, ftpPassword)
    picClsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
    picClsRequest.UseBinary = True
    picClsStream = picClsRequest.GetRequestStream()

    bFile = System.IO.File.ReadAllBytes(picDir & "/" & picPath(i))
    picClsStream.Write(bFile, 0, bFile.Length)
    picClsStream.Close()

Next

一些评论:

是的,我知道redundant...It在深夜。

ftpImagePath、picDir、ftpUsername、ftpPassword都是变量

是的,这是未加密的

这段代码运行得很好,我正在寻找优化

相关问题:FTP Upload multiple files without disconnect using .NET

EN

回答 4

Stack Overflow用户

发布于 2010-03-05 13:44:42

如果您想一次发送多个文件(如果顺序不重要),可以考虑异步发送文件。看看各种Begin*和End*方法,如FtpWebRequest.BeginGetResponseFtpWebRequest.EndGetResponse等。

此外,您还可以查看FtpWebRequest.KeepAlive属性,该属性用于保持连接打开/缓存以供重用。

嗯,你也可以尝试创建一个巨大的tar文件,然后用一个连接在一个流中发送这个文件。)

票数 5
EN

Stack Overflow用户

发布于 2010-03-05 14:17:13

是否可以将文件压缩成不同的包,例如,创建15个压缩文件,每个压缩文件有100个图像,然后上传压缩文件,这样会更快、更高效。

有一些免费的库可以动态创建压缩包(例如sharpZipLib)

票数 0
EN

Stack Overflow用户

发布于 2010-03-05 23:48:26

使用多线程-一次打开3-4个FTP连接,并并行上传文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2384513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档