Member 12839758 Ответов: 0

Создайте несколько каталогов на ftp, а затем загрузите файл


Я хочу загрузить файл на FTP, однако на FTP не всегда есть каталог, в который я хочу поместить свой файл, а также может потребоваться создать более 1 каталога перед загрузкой файла

Мой Ftp всегда содержит эти маршруты:

ftp://server.com/invoice/

однако мне нужно créate эти папки перед загрузкой моего файла

href="ftp://server.com/Invoices/RFC/RFC2/NOTES" >

однако не всегда ftp имеет эти маршруты

мне нужно иметь возможность проверить, существуют ли эти папки, и если нет, то я попробовал Ftp.MakeDirectory но это только создает последнюю папку мне нужно créate 3 из них перед загрузкой файла и не знаю как это сделать

Что я уже пробовал:

это мой код на данный момент

public void UploadFTP( string userName, string password, string FilePath, string FileName)
   {
     string hostFTPIP="";

     FtpWebRequest ftpWebRequest = null;
     Stream ftpStream = null;
     int bufferSize = 2048;
     string fullpath = FilePath + FileName;

     ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(hostFTPIP);
     ftpWebRequest.Credentials = new NetworkCredential(userName, password);

     ftpWebRequest.Method = WebRequestMethods.Ftp.MakeDirectory;


     ftpWebRequest.UseBinary = true;
     ftpWebRequest.UsePassive = false;
     ftpWebRequest.KeepAlive = true;
     ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile;
     ftpStream = ftpWebRequest.GetRequestStream();
     FileStream LocalUserFileStream = new FileStream(fullpath, FileMode.Open, FileAccess.Read);
     byte[] byteBuffer = new byte[bufferSize];
     int bytesSent = LocalUserFileStream.Read(byteBuffer, 0, bufferSize);
     try
     {
       while (bytesSent != 0)
       {
         ftpStream.Write(byteBuffer, 0, bytesSent);
         bytesSent = LocalUserFileStream.Read(byteBuffer, 0, bufferSize);

       }
     }
     catch (Exception ex)
     {
      Console.WriteLine("Error in Uploading Files" + ex);
     }
     LocalUserFileStream.Close();
     ftpStream.Close();
     ftpWebRequest = null;


   }

Dave Kreskowiak

Так в чем же вопрос?

Member 12839758

я не знаю, как проверить, существует ли папка, и не знаю, как создать 3 папки одновременно, только последнюю

Karthik_Mahalingam

Всегда использовать  Ответить  кнопка, чтобы отправить комментарии / запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

Garth J Lancaster

"я пытался Ftp.MakeDirectory но это только создает последнюю папку, которую мне нужно créate 3...и не знаю, как это сделать"

да, именно так это и работает, и ответ таков: Вы делаете уровни каталога по одному за раз - посмотрите здесь на мысли http://stackoverflow.com/questions/2769137/how-to-check-if-an-ftp-directory-exists

0 Ответов