У меня есть код, где я отправляю xml-файл на ftp-сервер, но размер файла на ftp-сервере меньше исходного. Я пытаюсь включить двоичную передачу, но результат все тот же.Загрузить файл xml на ftp двоичный
FileInfo f = new FileInfo("C:\\Users\\L\\Desktop\\data.xml");
long original_vel = f.Length;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://***");
request.UseBinary = true;
request.Method = WebRequestMethods.Ftp.GetFileSize;
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("*****", "*****");
StreamReader sourceStream = new StreamReader(@"C:\\Users\\L\\Desktop\\data.xml");
byte[] fileContents = Encoding.Unicode.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
long ftp_vel = request.ContentLength;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
if (original_vel == ftp_vel)
{
response.Close();
}
else
{
Odesilani();
}
Размер оригинального файла 294 672, но файл на фтп есть 294 670. The xml file on ftp is valid....But when i compare files in total comander, the original file have: FF FE 3C 00 3F 00.....and the file on ftp have 3C 00 3F 00...
Но содержание файла в порядке ...:/ У вас есть идея?
Да, файл XML является действительным .... Но когда я сравнить файлы в общем комманде, файл оригинала имеют: FF FE 3C 00 3F 00 ..... и файл на ftp имеет 3C 00 3F 00 ... Но содержимое файла в порядке ...:/ – Kate
Если вы все еще хотите, чтобы он был перенесен с остальной частью содержимого, вам придется вручную добавить его в начало массива байтов. 'byte [] stuff = новый байт [fileContents.Length + 2]; 'Array.Copy (fileContents, 0, stuff, 2, fileContents.length); 'stuff [0] = 0xff; 'stuff [1] = 0xfe; fileContents = stuff; – Ody
Невозможно передать файл xml в двоичном режиме? Потому что, когда я пытаюсь отправить файл * .exe, результат ужасен:/ – Kate