2011-04-11 17:59:58 +0000 2011-04-11 17:59:58 +0000
30
30

Puis-je télécharger un dossier entier en utilisant le FTP ?

Je dois télécharger un dossier complet en utilisant le FTP. Existe-t-il une option permettant de transférer un dossier et tout son contenu en une seule fois ?

Réponses (11)

24
24
24
2014-04-22 10:20:57 +0000

Vous pouvez utiliser ncftpput. Faites ce qui suit :

  1. installez ncftp :

yum est en minuscules.

Alternativement :

apt-get install ncftp
  1. Exécutez la commande suivante :
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
24
24
24
2011-05-09 11:50:59 +0000

Si vous utilisez un client ftp en ligne de commande standard, la commande MPUT vous permettra de transférer tous les fichiers correspondant à un modèle (shell glob-style), donc MPUT * enverra tous les fichiers dans le répertoire courant. Il existe également la commande MGET pour récupérer les fichiers correspondant à un modèle.

Par défaut, les deux commandes MPUT et MGET vous demanderont si vous souhaitez transférer chaque fichier avant de le faire. Vous voudrez probablement désactiver l'invite avec la commande “PROMPT” (pas d'argument, c'est un basculement).

8
8
8
2011-04-12 13:45:04 +0000

Utilisez un client FTP tel que LeechFTP ou FileZilla ou quelque chose de similaire. Beaucoup de gens ne jurent que par CuteFTP, mais c'est un shareware, la dernière fois que j'ai vérifié. Tous prennent en charge le transfert d'un dossier entier, y compris la structure des répertoires.

5
5
5
2011-04-11 18:03:23 +0000
  1. demander à l'utilisateur/client de zipper le dossier
  2. télécharger le fichier zip
  3. dézipper le dossier côté serveur .
2
2
2
2017-01-31 18:48:31 +0000

Je vais vous donner une réponse qui - bien que ce soit de la pure force brute et pas du tout élégante - était la seule chose qui fonctionnait pour moi sur la ligne de commande. J'ai créé une liste de fichiers, et je les ai mis dans un script :

générez votre liste de fichiers :

find my-dir -exec echo "put /Users/username/"{} {} \;

copiez et collez-les dans le script :

#!/bin/bash

hostname="my-ftp-host"
username="username"
password="password"
ftp -in $hostname <<EOF
quote USER $username
quote PASS $password

binary
cd 123456
{COPY THE LIST HERE}
quit
EOF
2
2
2
2014-11-18 18:33:31 +0000

Un simple tutoriel pour les autres novices de Windows comme moi qui se retrouvent ici :

La façon la plus simple de télécharger un dossier entier (avec tous les sous-dossiers et les fichiers qu'il contient) est :

  1. Téléchargez NcFTP Client (c'est gratuit, mais vous pouvez faire un don) à partir de ce lien .
  2. Choisissez NcFTP Client 3.2.5 pour Microsoft Windows dans la liste.
  3. Installez-le.
  4. Une fois l'installation terminée, une petite fenêtre CMD avec une icône en forme de cerise apparaîtra. Vous n'en avez pas besoin.
  5. Il suffit d'ouvrir une fenêtre CMD standard et de taper : ncftpput -u \*yourUserNameHere\* -p \*yourUserPasswordHere\* -R \*www.yourWebsite.com\* / \_C:\yourFolderDirectoryHere\*\_ (en une seule ligne).

Notez cela :

  • -R est un drapeau pour “récursif” ; il fait que la commande copie tous les sous-dossiers récursivement
  • / (slash) est le répertoire racine de votre site web
  • C:\yourFolderDirectoryHere\* sélectionne tout ce qui se trouve à l'intérieur C:\yourFolderDirectoryHere.
1
1
1
2011-04-11 18:03:48 +0000

Voir this out .

Vous pouvez également créer par programmation un dossier sur le serveur , et ensuite télécharger tous les fichiers dans ce nouveau dossier.

0
0
0
2016-06-15 04:20:22 +0000

Le répertoire cible est un fichier zip. Vous pouvez copier le fichier zip complet dans le serveur ftp en utilisant le code ci-dessous.

//Taking source and target directory path
string sourceDir = FilePath + "Files\" + dsCustomer.Tables[0].Rows[i][2].ToString() + "\ConfigurationFile\" + dsSystems.Tables[0].Rows[j][0].ToString() + "\XmlFile";

string targetDir = FilePath + "Files\Customers\" + CustomerName + "\" + SystemName + "\";                                                                                       
foreach (var srcPath in Directory.GetFiles(sourceDir))
{
    //Taking file name which is going to copy from the sourcefile                                              
    string result = System.IO.Path.GetFileName(srcPath);

    //If that filename exists in the target path
    if (File.Exists(targetDir + result))
    {
        //Copy file with a different name(appending "Con_" infront of the original filename)
        System.IO.File.Copy(srcPath, targetDir + "Con_" + result);
    }
    //If not existing filename
    else
    {
        //Just copy. Replace bit is false here. So there is no overwiting.
        File.Copy(srcPath, srcPath.Replace(sourceDir, targetDir), false);
    }
}
0
0
0
2011-04-12 14:20:35 +0000

Firefox dispose d'un plug-in appelé FireFtp qui est un joli client ftp.

0
0
0
2011-04-12 13:50:02 +0000

FileZilla est parfait pour cela. Si vous ne voulez rien télécharger/installer, vous pouvez le faire avec Internet Explorer. Allez dans les options avancées, et sélectionnez Enable FTP folder view (outside of Internet Explorer). Vous pouvez ensuite pointer une fenêtre d'explorateur vers votre serveur FTP et faire un glisser-déposer de fichiers et de dossiers entre les fenêtres d'explorateur.

0
0
0
2017-03-25 15:21:50 +0000

Ma réponse est une variation de la réponse de @dgig.

Vous pouvez lister tous les fichiers et les enregistrer (y compris la commande put) dans un fichier :

find my-dir -exec echo "put /Users/username/"{} {} > list.txt \;

et ensuite utiliser sftp pour traiter le fichier :

sftp -C -b sftpbatchfile.txt name@server

-C est pour la compression, -b est pour le fichier batch