Моя проблема заключается в том, что когда я просматриваю загруженный файл на моем ftp-сервере, на нем нет содержимого, он пуст. Почему это происходит, я что-то пропускаю в своем коде?Загрузка файла xml на ftp-сервер в C#, файл был успешно загружен, но в нем нет содержимого?
if (File.Exists("main.xml"))
{
using (Stream stream = new MemoryStream())
{
stream.Position = 0;
stream.Seek(0, SeekOrigin.Begin);
string uri = String.Format("ftp://{0}/{1}/{2}", "host", "wwwroot", "main.xml");
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
request.Credentials = new NetworkCredential("user", "pass");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.KeepAlive = false;
request.UseBinary = true;
request.UsePassive = true;
request.ContentLength = stream.Length;
request.EnableSsl = false;
int bufferLength = 2048;
byte[] buffer = new byte[bufferLength];
int contentLength;
Stream ftpStream = request.GetRequestStream();
contentLength = stream.Read(buffer, 0, bufferLength);
while (contentLength != 0)
{
ftpStream.Write(buffer, 0, contentLength);
contentLength = stream.Read(buffer, 0, bufferLength);
}
ftpStream.Flush();
ftpStream.Close();
}
}
else
{
MessageBox.Show("No file found.");
}
Но когда я пытаюсь вставить эту строку кода выше
MessageBox.Show(XDocument.Load("main.xml").ToString());
имеет выход,
Но когда я пытаюсь установки точки останова, когда он достигнет while (contentLength != 0)
это не входит к нему
, так что это означает, что все изменения ftpStream тоже перевернутся? – MekeniKine
имеет ошибки «не может назначаться потоку, потому что это переменная using» – MekeniKine
только что заметил, что вы не указали, к чему обращается ваш ftpstream, так что вам это тоже нужно, см. Редактирование. – john