c#怎么实现下载FTP服务器中的某个文件

2024-12-27 22:18:03
推荐回答(2个)
回答1:

public const string FTP_URL = "ftp://服务器地址";

public const string FTP_USER_NAME = "user_name";

public const string FTP_PASSWORD = "pwd";

///


/// 下载文件
///

public void DownloadFile(string fileName)
{
// 连接对象
WebClient request = new WebClient();
// 用户名/密码.
request.Credentials = new NetworkCredential(FTP_USER_NAME, FTP_PASSWORD);
// 组合全路径名.
string fullFileName = FTP_URL + fileName;
// Windows / FTP 路径切换.
fullFileName = fullFileName.Replace('\\', '/');
// 预期的文件内容.
byte[] newFileData = null;
newFileData = request.DownloadData(fullFileName);
// 写入文件.
WriteBinFile("本地文件名", newFileData);
}

private void WriteBinFile(string fileName, byte[] newFileData)
{
FileStream fs = null;
BinaryWriter bw = null;
try
{
// 首先判断,文件是否已经存在
if (File.Exists(fileName))
{
// 如果文件已经存在,那么删除掉.
File.Delete(fileName);
}
// 注意第2个参数:
// FileMode.Create 指定操作系统应创建新文件。如果文件已存在,它将被覆盖。
fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
bw = new BinaryWriter(fs);
// 写入数据.
bw.Write(newFileData);
// 关闭文件.
bw.Close();
fs.Close();
bw = null;
fs = null;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (bw != null)
{
try
{
bw.Close();
}
catch
{
// 最后关闭文件,无视 关闭是否会发生错误了.
}
}
if (fs != null)
{
try
{
fs.Close();
}
catch
{
// 最后关闭文件,无视 关闭是否会发生错误了.
}
}
}
}

回答2:

你要参考一r下qftp的协议,自己f和服务端建立ftp连接,如果连接成功,就通过控制链接向服务器发送一s个a查询命令即可,判断服务器的应答,从3而就知道文8件是否存在。这个d并不d难实现,你作为3客户3端,只需要利用套接字,按照ftp协议的规定,把需要的连接给建立起来,给服务器发送一j个b查询命令。 n⑤ァrn⑤ァy郡Ⅻon⑤ァa譬恰mzXЫf