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

Czy mogę przesłać cały folder za pomocą FTP?

Muszę przesłać cały folder za pomocą FTP. Czy jest jakaś opcja, aby przesłać folder i całą jego zawartość za jednym razem?

Odpowiedzi (11)

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

Możesz użyć ncftpput. Wykonaj następujące czynności:

  1. Zainstaluj ncftp:

yum jest pisany małymi literami.

Alternatywnie:

apt-get install ncftp
  1. Wykonaj następujące polecenie:
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
24
24
24
2011-05-09 11:50:59 +0000

Jeśli używasz standardowego klienta ftp z wierszem poleceń, polecenie MPUT pozwoli ci przesłać wszystkie pliki pasujące do wzorca (w stylu globali powłoki), więc MPUT * wyśle wszystkie pliki w bieżącym katalogu. Istnieje również MGET do pobierania plików pasujących do wzorca.

Domyślnie, zarówno MPUT jak i MGET pytają o to, czy przesłać każdy plik, zanim to zrobią. Prawdopodobnie chciałbyś wyłączyć podpowiadanie poleceniem “PROMPT” (bez argumentu; jest to przełącznik).

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

Użyj klienta FTP takiego jak LeechFTP lub FileZilla lub czegoś podobnego. Wiele osób przysięga na CuteFTP, ale jest to shareware ostatnio jak sprawdzałem. Wszystkie obsługują przesyłanie całych folderów, w tym struktury katalogów.

5
5
5
2011-04-11 18:03:23 +0000
  1. Użytkownik/klient powinien rozpakować folder
  2. Przesłać plik zip
  3. Rozpakuj folder po stronie serwera ](http://weblogs.asp.net/jgalloway/archive/2007/10/25/creating-zip-archives-in-net-without-an-external-library-like-sharpziplib.aspx).
2
2
2
2017-01-31 18:48:31 +0000

Zaproponuję odpowiedź, która - choć jest to czysta brutalna siła i nie jest elegancka w najmniejszym stopniu - była jedyną rzeczą, która działała dla mnie w linii poleceń. Stworzyłem listę plików i umieściłem je w skrypcie:

wygeneruj swoją listę plików:

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

skopiuj i wklej je do skryptu:

#!/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

Prosty poradnik dla innych początkujących użytkowników Windows, takich jak ja, którzy tu trafiają:

Najprostszy sposób na przesłanie całego folderu (ze wszystkimi podfolderami i plikami w nich) to:

  1. Pobierz NcFTP Client (jest darmowy, ale możesz przekazać darowiznę) z tego linku .
  2. Wybierz z listy NcFTP Client 3.2.5 for Microsoft Windows.
  3. Zainstaluj go.
  4. Po zakończeniu instalacji pojawi się małe okienko CMD z ikoną wisienki. Nie jest ono potrzebne.
  5. Po prostu otwórz standardowe okno CMD i wpisz: ncftpput -u \*yourUserNameHere\* -p \*yourUserPasswordHere\* -R \*www.yourWebsite.com\* / \_C:\yourFolderDirectoryHere\*\_ (jako jedną linię).

Zauważ, że:

  • -R to flaga oznaczająca “recursive”; sprawia ona, że polecenie kopiuje rekursywnie wszystkie podfoldery
  • / (ukośnik) to katalog główny Twojej witryny
  • C:\yourFolderDirectoryHere\* wybiera wszystko, co znajduje się wewnątrz C:\yourFolderDirectoryHere.
1
1
1
2011-04-11 18:03:48 +0000

Sprawdź to .

Możesz również programowo utworzyć folder na serwerze , a następnie przesłać wszystkie pliki do tego nowego folderu.

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

Docelowy dir jest plikiem zip. Możesz skopiować pełny plik zip na serwer ftp używając poniższego kodu.

//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 ma wtyczkę o nazwie FireFtp , która jest dobrym klientem ftp.

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

FileZilla jest do tego świetna. Jeśli nie chcesz nic pobierać/instalować, można to zrobić za pomocą Internet Explorera. Wejdź w opcje zaawansowane i wybierz Enable FTP folder view (outside of Internet Explorer). Następnie możesz wskazać okno eksploratora na swoim serwerze FTP i przeciągać i upuszczać pliki i foldery pomiędzy oknami eksploratora.

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

Moja odpowiedź jest wariacją odpowiedzi @dgig ‘s.

Możesz wylistować wszystkie pliki i zapisać je (w tym polecenie put) w pliku:

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

a następnie użyć sftp do przetworzenia pliku:

sftp -C -b sftpbatchfile.txt name@server

-C jest dla kompresji, -b jest dla pliku wsadowego