Quello che sto cercando di fare è caricare un sito Web usando FTP in C# (C Sharp). Quindi ho bisogno di caricare tutti i file e le cartelle all'interno di una cartella, mantenendo la sua struttura. Sto usando questa classe FTP: http://www.codeproject.com/Tips/443588/Simple-Csharp-FTP-Class per il caricamento effettivo.C# Carica l'intera directory tramite FTP
Sono giunto alla conclusione che ho bisogno di scrivere un metodo ricorsivo che attraversi ogni sottodirectory della directory principale e carichi tutti i file e le cartelle al suo interno. Questo dovrebbe fare una copia esatta della mia cartella sull'FTP. Il problema è ... non ho idea di come scrivere un metodo del genere. Ho già scritto metodi ricorsivi ma sono nuovo nella parte FTP.
Questo è quello che ho finora:
private void recursiveDirectory(string directoryPath)
{
string[] filePaths = null;
string[] subDirectories = null;
filePaths = Directory.GetFiles(directoryPath, "*.*");
subDirectories = Directory.GetDirectories(directoryPath);
if (filePaths != null && subDirectories != null)
{
foreach (string directory in subDirectories)
{
ftpClient.createDirectory(directory);
}
foreach (string file in filePaths)
{
ftpClient.upload(Path.GetDirectoryName(directoryPath), file);
}
}
}
Ma la sua ancora lontano e non so come continuare. Sono sicuro che più di me ha bisogno di sapere questo! Grazie in anticipo :)
Ohh e ... Sarebbe bello se riferito i suoi progressi troppo :) (sto usando una barra di avanzamento)
EDIT: Sarebbe stato poco chiaro ... Come posso caricare una directory che includa tutte le sottodirectory e i file con FTP?
E la domanda è? – J0HN
Prima risolviamo un problema semplice. Scrivi un metodo che eseguirà il looping di ciascuna cartella all'interno della cartella principale e la creerà sul sito Web in questione. Una volta fatto ciò dovrebbe essere abbastanza facile caricare ogni file in ciascuna di queste cartelle. Non hai abbastanza fatto per noi per aiutarti. Non riesco a credere che abbiate il coraggio di fare richieste di funzionalità ..... –
Per creare una barra di avanzamento è necessario ottenere tutti i file che devono essere caricati. Vorrei memorizzare i percorsi dei file in una lista. Quindi scorrere i percorsi dei file per caricarli sul server FTP. Dopo ogni caricamento, aggiorna i progressi. Una barra più accurata potrebbe essere ottenuta memorizzando la dimensione del file con il percorso del file. Quindi, come ogni file viene caricato incrementare il progresso in base alla dimensione del file. Se hai bisogno, posso aggiungere un esempio. – Trisped