在C#中,你可以使用System.Net命名空间下的FtpWebRequest类来操作FTP服务器上的文件。下面是一些基本的示例,展示了如何连接到FTP服务器,上传文件,下载文件,列出目录中的文件,以及删除文件。
连接到FTP服务器
首先,你需要创建一个FtpWebRequest对象,并设置其属性以连接到FTP服务器。
csharpstring ftpServer = "ftp://example.com";
string userName = "username";
string password = "password";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServer);
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(userName, password);
try
{
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
// 处理响应
response.Close();
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
上传文件到FTP服务器
要上传文件到FTP服务器,你需要设置WebRequest的Method属性为WebRequestMethods.Ftp.UploadFile,并提供本地文件的路径。
csharpstring localFilePath = @"C:\local\path\to\file.txt";
string remoteFilePath = "/remote/path/to/file.txt";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServer + remoteFilePath);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(userName, password);
// 转换为字节数组
byte[] fileContents = File.ReadAllBytes(localFilePath);
request.ContentLength = fileContents.Length;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(fileContents, 0, fileContents.Length);
}
try
{
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
response.Close();
}
catch (Exception ex)
{
Console.WriteLine("Upload File Error: " + ex.Message);
}
从FTP服务器下载文件
要下载FTP服务器上的文件,你需要设置WebRequest的Method属性为WebRequestMethods.Ftp.DownloadFile,并提供远程文件的路径。
csharpstring remoteFilePath = "/remote/path/to/file.txt";
string localFilePath = @"C:\local\path\to\file.txt";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServer + remoteFilePath);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(userName, password);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
using (Stream responseStream = response.GetResponseStream())
using (FileStream localFileStream = new FileStream(localFilePath, FileMode.Create))
{
responseStream.CopyTo(localFileStream);
}
response.Close();
Console.WriteLine("File downloaded");
列出FTP服务器目录中的文件
要列出FTP服务器目录中的文件,你需要设置WebRequest的Method属性为WebRequestMethods.Ftp.ListDirectory。
csharpstring remoteDirectory = "/remote/directory/";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServer + remoteDirectory);
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(userName, password);
try
{
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
while (!reader.EndOfStream)
{
Console.WriteLine(reader.ReadLine());
}
reader.Close();
response.Close();
}
catch (Exception ex)
{
Console.WriteLine("List Directory Error: " + ex.Message);
}
从FTP服务器删除文件
要从FTP服务器删除文件,你需要设置WebRequest的Method属性为WebRequestMethods.Ftp.DeleteFile,并提供要删除文件的路径。
csharpstring remoteFilePath = "/remote/path/to/file.txt";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServer + remoteFilePath);
request.Method = WebRequestMethods.Ftp.DeleteFile;
request.Credentials = new NetworkCredential(userName, password);
本文暂时没有评论,来添加一个吧(●'◡'●)