我尝试使用C#将文件上传到FTP服务器.文件已上传但零字节.
private void button2_Click(object sender, EventArgs e)
{
var dirPath = @"C:/Documents and Settings/sander.GD/Bureaublad/test/";
ftp ftpClient = new ftp("ftp://example.com/", "username", "password");
string[] files = Directory.GetFiles(dirPath,"*.*");
var uploadPath = "/httpdocs/album";
foreach (string file in files)
{
ftpClient.createDirectory("/test");
ftpClient.upload(uploadPath + "/" + Path.GetFileName(file), file);
}
if (string.IsNullOrEmpty(txtnaam.Text))
{
MessageBox.Show("Gelieve uw naam in te geven !");
}
}
Run Code Online (Sandbox Code Playgroud) 寻找通过FTP检查给定目录的最佳方法.
目前我有以下代码:
private bool FtpDirectoryExists(string directory, string username, string password)
{
try
{
var request = (FtpWebRequest)WebRequest.Create(directory);
request.Credentials = new NetworkCredential(username, password);
request.Method = WebRequestMethods.Ftp.GetDateTimestamp;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
FtpWebResponse response = (FtpWebResponse)ex.Response;
if (response.StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable)
return false;
else
return true;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
无论目录是否存在,都返回false.有人能指出我正确的方向.
我正在使用.NET 4 C#.我正在尝试上传然后将ZIP文件下载到(我的)服务器.
上传我有
using (WebClient client = new WebClient())
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(MyUrl);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.EnableSsl = false;
request.Credentials = new NetworkCredential(MyLogin, MyPassword);
byte[] fileContents = null;
using (StreamReader sourceStream = new StreamReader(LocalFilePath))
{
fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
}
request.ContentLength = fileContents.Length;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(fileContents, 0, fileContents.Length);
}
FtpWebResponse response = null;
response = (FtpWebResponse)request.GetResponse();
response.Close();
}
Run Code Online (Sandbox Code Playgroud)
这似乎有效,因为我在正确大小的服务器上获得了一个文件.
1)如何流式传输,而不是先将其加载到内存中?我将上传非常大的文件.
我下载了
using (WebClient client = new WebClient())
{
string HtmlResult = String.Empty;
FtpWebRequest request = …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个上传/下载.exe文件的程序FTP
我尝试过使用FtpWebRequest,但我只能成功上传和下载.txt文件.
然后我在这里找到了一个下载解决方案WebClient:
WebClient request = new WebClient();
request.Credentials = new NetworkCredential("username", "password");
byte[] fileData = request.DownloadData("ftp://myFTP.net/");
FileStream file = File.Create(destinatie);
file.Write(fileData, 0, fileData.Length);
file.Close();
Run Code Online (Sandbox Code Playgroud)
此解决方案有效.但我看到WebClient有一种方法DownloadFile没有奏效.我想是因为它不工作FTP只HTTP.我的假设是真的吗?如果不是,我怎么能让它工作?
有没有其他解决方案上传/下载.exe文件到ftp使用FtpWebRequest?