login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[C#] Bestanden downloaden van ftp server

Offline Ultimatum - 18/08/2009 00:51
Avatar van UltimatumPHP expert Hallo, ik wil graag met een C# applicatie alle bestanden van een ftp server downloaden maar dan zonder een user handeling zoals verplicht is bij een ftp programma (zoals Filezilla). Wat ik bedoel is dat je met Filezillia de map moet selecteren, en dan download moet kiezen etc.. Ik wil graag dat je direct de map + submappen download. Een enkel bestand lukt me wel, maar hoe kan ik alle mappen + submappen automatisch downloaden? Iemand die een tutorial of een link heeft want ik kon alleen maar vinden hoe je een enkel bestand kon downloaden en niet complete mappen + submappen.

Alvast bedankt.

4 antwoorden

Gesponsorde links
Offline Abbas - 18/08/2009 17:42
Avatar van Abbas Gouden medaille

Crew .NET
  1. private void btnConnect_Click(object sender, EventArgs e)
  2. {
  3. //Hier verbinding maken met de FTP en de map selecteren
  4. lblFolder.Text = "";//Geselecteerde folder van je FTP
  5. }
  6.  
  7. private void btnIndexeer_Click(object sender, EventArgs e)
  8. {
  9. Bereken(lblFolder.Text);
  10. }
  11.  
  12. private void Bereken(string folderPad)
  13. {
  14. DirectoryInfo info = new DirectoryInfo(folderPad);
  15. foreach (FileInfo rootFile in info.GetFiles())
  16. {
  17. //Bestanden kopieren
  18. //Met info.Name haal je de naam van de folder op
  19. //Je kan dan tijdens het kopieren ook een nieuwe map aanmaken
  20. //om dan deze bestanden in te plaatsen
  21. }
  22.  
  23. BerekenSubFolders(folderPad);
  24. }
  25.  
  26. private void BerekenSubFolders(string folderPad)
  27. {
  28. DirectoryInfo dirInfo = new DirectoryInfo(folderPad);
  29. foreach (DirectoryInfo subDir in dirInfo.GetDirectories())
  30. {
  31. foreach (FileInfo subFile in subDir.GetFiles())
  32. {
  33. //zelfde kopieerwerk als hierboven
  34. }
  35. BerekenSubFolders(subDir.FullName);
  36. }
  37. }
Offline Ultimatum - 18/08/2009 18:28
Avatar van Ultimatum PHP expert Waar maak ik dan connectie met de ftp server? Want DirectoryInfo haalt toch alleen informatie van lokale mappen op of begrijp ik het niet goed. Bedankt voor je voorbeeld in ieder geval.
Offline cyberninjah - 19/08/2009 12:11
Avatar van cyberninjah Lid FTPWebRequest kan je informatie van FTP halen en de files downloaden om een lijst op te halen uit de ftp kan je het volgende voor gebruiken

  1. public string[] GetFileList()
  2. {
  3. string[] downloadFiles;
  4. StringBuilder result = new StringBuilder();
  5. FtpWebRequest reqFTP;
  6. try
  7. {
  8. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(
  9. "ftp://" + ftpServerIP + "/"));
  10. reqFTP.UseBinary = true;
  11. reqFTP.Credentials = new NetworkCredential(ftpUserID,
  12. ftpPassword);
  13. reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
  14. WebResponse response = reqFTP.GetResponse();
  15. StreamReader reader = new StreamReader(response
  16. .GetResponseStream());
  17.  
  18. string line = reader.ReadLine();
  19. while (line != null)
  20. {
  21. result.Append(line);
  22. result.Append("\n");
  23. line = reader.ReadLine();
  24. }
  25. // to remove the trailing '\n'
  26. result.Remove(result.ToString().LastIndexOf('\n'), 1);
  27. reader.Close();
  28. response.Close();
  29. return result.ToString().Split('\n');
  30. }
  31. catch (Exception ex)
  32. {
  33. System.Windows.Forms.MessageBox.Show(ex.Message);
  34. downloadFiles = null;
  35. return downloadFiles;
  36. }
  37. }

Bron:CodeProject

Als je weet welke bestanden je moet downloaden kan je de bestanden 1 voor 1 laten downloaden automatish
Offline Ultimatum - 19/08/2009 12:39
Avatar van Ultimatum PHP expert Bedankt, deze zag ik vanmorgen ook, maar nu het volgende probleem. Hoe weet ik of reader.ReadLine() een map is? Want nu download hij alleen de bestanden uit de huidige map maar hij pakt niet de submappen + inhoud van die submappen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.172s