Добрый день, коллеги.
Имеется два метода: один закидывает файлы на сервер, а другой скачивает их с него. Все работает отлично, пока дело не доходит до архивов. Их скачать не получается.
Код метода для скачивания:
private string Download(string Login, string Password, string FileName, string uuid, string FTPDir, string Destination)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + FTPDir + uuid + "/" + FileName);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(Login, Password);
byte[] buffer = new byte[1024];
using (var response = (FtpWebResponse)request.GetResponse())
{
using (var stream = response.GetResponseStream())
{
using (var fs = new FileStream(Destination, FileMode.OpenOrCreate))
{
int readCount = stream.Read(buffer, 0, 1024);
while (readCount > 0)
{
fs.Write(buffer, 0, readCount);
readCount = stream.Read(buffer, 0, 1024);
}
}
return response.StatusDescription;
}
}
Вызов функции:
string DownloadStatus = FTP.Download("anonymous", "anonymous", "8fff88d9-b4b8-11e7-bfe5-b8ee650e5411.zip", uuid, "ServerPath", @"C:\new_file1.zip");
Создание директории на сервере:
private string CreateFTPDirectory(string Login, string Password, string uuid, string FTPDir)
{
FtpWebRequest FTP = (FtpWebRequest)FtpWebRequest.Create("ftp://" + FTPDir + uuid);
FTP.Credentials = new NetworkCredential(Login, Password);
FTP.KeepAlive = false;
FTP.UseBinary = true;
FTP.Proxy = null;
FTP.Method = WebRequestMethods.Ftp.MakeDirectory;
FtpWebResponse resp = (FtpWebResponse)FTP.GetResponse();
resp.Close();
return resp.StatusDescription;
}
Закачка на сервер:
private string Upload(string Login, string Password, string FilePath, string FileName, string uuid, string FTPDir)
{
string CreateDirectory = CreateFTPDirectory(Login, Password, uuid, FTPDir);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + FTPDir + uuid + "/" + FileName);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.UseBinary = true;
StreamReader sourceStream = new StreamReader(FilePath + FileName);// Add the file path on the source machine
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
using (Stream S = request.GetRequestStream())
{
S.Write(fileContents, 0, fileContents.Length);
}
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
return response.StatusDescription;
}
При попытке открыть скаченный архив получаю ошибку: Не удается открыть папку. Сжатая ZIP-папка имеет неверный формат.
Просьба указать на ошибки или мануалы, которые помогут разобраться.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Надо разбить строку на поляПоля выделены кавычками (двойными или одинарными):
Пытаюсь возвратить значение JS функции на странице, загруженной в CEF браузере, используя метод EvaluateScriptAsyncПосетил десятки веб-страниц и документаций,...