Recherche de problèmes lors de la copie d'un fichier zip à partir d'un emplacement FTP. C'est juste une copie et un fichier vide donc je pense qu'il y a quelque chose qui cloche avec mon utilisation de StreamReader ou StreamWriter.Téléchargement de fichier ZIP à partir du FTP et copie dans un dossier du site Web
Voici le code:
//read through directory details response
string line = reader.ReadLine();
while (line != null)
{
if (line.EndsWith("zip")) //"d" = dir don't need "." or ".." dirs
{
FtpWebRequest downloadRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://" + ftpHost + line); //new Uri("ftp://" + ftpServerIP + DestinationFolder + fileInf.Name));
downloadRequest.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["FilesUser"], ConfigurationManager.AppSettings["FilesPass"]);
downloadRequest.KeepAlive = false;
downloadRequest.UseBinary = true;
downloadRequest.Method = WebRequestMethods.Ftp.DownloadFile;
string folderToWrite = HttpContext.Current.Server.MapPath("~/Routing/RoutingFiles/");
string folderToSave = HttpContext.Current.Server.MapPath("~/Routing/");
StreamReader downloadRequestReader = new StreamReader(downloadRequest.GetResponse().GetResponseStream());
DirectoryInfo downloadDirectory = new DirectoryInfo(folderToWrite);
FileInfo file = new FileInfo(Path.Combine(downloadDirectory.FullName, line));
if (!file.Exists)
{
StreamWriter writer = new StreamWriter(Path.Combine(folderToWrite, line), false);
writer.Write(downloadRequestReader.ReadToEnd());
using (var downloadResponseStream = response.GetResponseStream())
{
}
}
}
}
Au moment où il arrive au bas de cette section, le fichier a été copié mais est vide, donc je ne pense pas que je lis correctement le flux de un fichier zip. Quelqu'un a des idées? J'ai vu parler de FileStream étant mieux pour le téléchargement de fichiers Zip, mais je ne pouvais pas faire fonctionner ça non plus.
Merci.
Salut Teletha - faire des progrès, mais elle est maintenant une erreur fait d'Élever dire « ZipEntry :: ReadDirEntry(): signature Bad » quand je vais essayer de dans le fichier Zip pour parcourir le contenu. Lorsque j'essaie d'ouvrir le fichier zip téléchargé juste dans l'explorateur, cela provoque une erreur disant "Le dossier compressé ... n'est pas valide". N'avez-vous pas besoin d'une méthode de téléchargement différente pour les fichiers Zip? –
Vous avez raison. Cela a fonctionné pour les fichiers normaux et j'ai supposé que cela fonctionnerait également pour les fichiers zip. Je suis désolé. En regardant une solution maintenant. – Teletha
@ e-on Cela devrait fonctionner maintenant. Je suis désolé pour l'erreur précédente. – Teletha