web-dev-qa-db-fra.com

Puis-je télécharger un dossier entier via FTP?

J'ai besoin de télécharger un dossier complet en utilisant FTP. Existe-t-il une option pour transférer un dossier et tout son contenu à la fois?

28
Shalu

Si vous utilisez un client ftp standard en ligne de commande, la commande MPUT vous permettra de transférer tous les fichiers correspondant à un modèle (style global Shell), de sorte que MPUT * enverra tous les fichiers du répertoire en cours. Il existe également MGET pour récupérer les fichiers correspondant à un modèle.

Par défaut, MPUT et MGET demanderont le transfert de chaque fichier avant de le faire. Vous voudrez probablement désactiver les invites avec la commande "Invite" (sans argument, c'est une bascule).

23
Dave Sherohman

Vous pouvez utiliser ncftpput. Faites ce qui suit:

  1. Installez ncftp:

    yum install ncftp
    

miam est en minuscule.

Alternativement:

    apt-get install ncftp

2. Exécutez la commande suivante:

    ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
22
Mohamed BK

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 la dernière fois que j'ai vérifié les partagiciels. Tous prennent en charge le transfert d'un dossier complet, y compris la structure de répertoires.

8
Joshua Nurczyk
  1. demander à l'utilisateur/client de compresser le dossier
  2. télécharger le fichier Zip
  3. décompressez le côté serveur de dossiers .
5
Chase Florell

Un tutoriel simple pour les débutants Windows comme moi qui se retrouvent ici:

Le moyen le plus simple de télécharger un dossier complet (avec tous les sous-dossiers et les fichiers qu’ils contiennent) est:

  1. Téléchargez le client NcFTP (gratuit, mais vous pouvez faire un don) à partir de ce lien .
  2. Choisissez le client NcFTP 3.2.5 pour Microsoft Windows dans la liste.
  3. Installez-le.
  4. Une fois terminé, une petite fenêtre CMD avec une icône cerises apparaîtra. Tu n'en as pas besoin.
  5. Ouvrez simplement une fenêtre CMD standard et tapez:
    ncftpput -u * yourUserNameHere * -p * yourUserPasswordHere * -R * www.votreWebsite.com * /
     _C:\yourFolderDirectoryHere \\ * _
    (sur une ligne).

Notez que:

  • -R est un drapeau pour "récursif"; la commande copie tous les sous-dossiers de manière récursive
  • / (barre oblique) est le répertoire racine de votre site Web
  • C:\yourFolderDirectoryHere\* sélectionne tout ce qui se trouve à l'intérieur C:\yourFolderDirectoryHere
2
DBS

Je vais offrir une réponse qui - bien que pure force brute et pas du tout élégante - a été la seule chose qui a fonctionné pour moi sur la ligne de commande. J'ai créé une liste de fichiers et les ai mis dans un script:

générer 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
dgig

Vérifiez ceci .

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

1
BrandonZeider

FileZilla est idéal pour cela. Si vous ne souhaitez 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 de l’explorateur sur votre serveur FTP et faire glisser des fichiers et des dossiers entre les fenêtres de l’explorateur.

0
Jim Fell

Firefox a un plug-in appelé FireFtp qui est un client ftp de Nice.

0
jet

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

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

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

puis utilisez sftp pour traiter le fichier:

sftp -C -b sftpbatchfile.txt name@server

-C est pour la compression, -b est pour le fichier de commandes

0
Juraj.Lorinc

Le répertoire cible est un fichier Zip. Vous pouvez copier le fichier Zip complet sur le serveur FTP à l'aide du 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
user606353