我已经实现了使用FtpWebRequestC#中的类上传,下载,删除等功能.这是相当直接的.
我现在需要做的是支持发送任意FTP命令,如
quote SITE LRECL=132 RECFM=FB
or
quote SYST
Run Code Online (Sandbox Code Playgroud)
以下是我们的示例配置app.config:
<!-- The following commands will be executed before any uploads occur -->
<extraCommands>
<command>quote SITE LRECL=132 RECFM=FB</command>
</extraCommands>
Run Code Online (Sandbox Code Playgroud)
我还在研究如何使用它FtpWebRequest.我接下来可能会WebClient上课.任何人都可以更快地指出我正确的方向?谢谢!
更新:我得出了同样的结论,因为.NET Framework 3.5 FtpWebRequest不支持除了内容之外的任何内容WebRequestMethods.Ftp.*.我会尝试一些其他帖子推荐的第三方应用.谢谢您的帮助!
我试图使用以下代码从ftp服务器下载文件:
using (System.IO.FileStream fileStream = System.IO.File.OpenWrite(filePath))
{
byte[] buffer = new byte[4096];
int bytesRead = responseStream.Read(buffer, 0, 4096);
while (bytesRead > 0)
{
fileStream.Write(buffer, 0, bytesRead);
bytesRead = responseStream.Read(buffer, 0, 4096);
}
}
Run Code Online (Sandbox Code Playgroud)
responseStream的创建:
System.IO.Stream responseStream = GetFileAsStream(url, username, password, false);
public static System.IO.Stream GetFileAsStream(string ftpUrl, string username, string password, bool usePassive)
{
System.Net.FtpWebRequest request = (System.Net.FtpWebRequest)System.Net.WebRequest.Create(ftpUrl);
request.KeepAlive = false;
request.ReadWriteTimeout = 120000;
request.Timeout = -1;
request.UsePassive = usePassive;
request.Credentials = new System.Net.NetworkCredential(username, password);
request.Method = System.Net.WebRequestMethods.Ftp.DownloadFile;
System.IO.Stream fileResponseStream;
System.Net.FtpWebResponse …Run Code Online (Sandbox Code Playgroud)