2013-01-07 16 views
7
URL url = new URL("ftp://user:[email protected]/thefolder/"); 
URLConnection connection = url.openConnection(); 
... 
// List files in folder... 

上記のようなものを使用して、私はフォルダ「thefolder」内のファイルのリストをどのように取得できたのだろうか?URLConnection FTPリストファイル


こんにちはみんな、この元の質問に続き

、私は一緒にすべての作業と 格好良いです、この単純なFTP接続を入れています。/live/conf/locationにあるすべてのファイルを表示し、それらをすべてローカル/ conf /ロケーションにコピーします。 唯一の問題は、ファイルをコピーしていますが、コンテンツはありません。すべて0KBで空です!

誰でも、ファイルの内容をコピーすることはできますが、ファイルの内容はコピーしないでください。

乾杯

KPS

try { 
    FTPClient ftp = new FTPClient(); 
    ftp.connect("000.000.000.000"); 
    ftp.login("USER", "PASSWORD"); 
    ftp.enterLocalPassiveMode(); 
    ftp.setFileType(FTP.BINARY_FILE_TYPE); 

    FTPFile[] files = ftp.listFiles("/live/conf/"); 
    for (int i=0; i < files.length; i++) { 
     if (files[i].getName().contains(".csv")) { 

      String remoteFile1 = files[i].getName(); 
      File downloadFile1 = new File("/var/local/import/conf/"+files[i].getName()); 
      OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1)); 
      ftp.retrieveFile(remoteFile1, outputStream1); 
      outputStream1.close();     

     } 
    } 
    ftp.disconnect(); 
} catch (SocketException ex) { 
    ex.printStackTrace(); 
} catch (IOException ex) { 
    ex.printStackTrace(); 
} 
+0

専用のFTPクライアントライブラリがあり、あなたがより良いこれを使用していた、それははるかに容易になります。 – fge

答えて

8

のJava SE URLConnectionがためinsuitableですFTPホストからファイルのリストを取得する作業。 FTPに関しては、基本的にFTP getまたはputコマンド(ファイルの取得またはアップロード)のみをサポートしています。基本的に探しているFTP lsコマンド(リストファイル)はサポートしていません。

FTP lsコマンドをサポートしているサードパーティのライブラリ(およびその他多くのもの)を探す必要があります。よく使われるものはApache Commons NetFtpClientです。そのjavadoclsを発行する方法を実証している:

FTPClient f = new FTPClient(); 
f.connect(server); 
f.login(username, password); 
FTPFile[] files = f.listFiles(directory); 
+0

クールなクイック、シンプル、簡単、そして作品! – Casper

+0

ようこそ。 – BalusC

1

私が見つけたこのクラスをチェックしてください。それはあなたのために持ち上げています。 Class at nsftools.com

例は次のようになります。これは、あなたがLISTFILESを呼び出すことができるようになる

FTPConnection ftpConnect = new FTPConnection(); 
ftpConnect.connect("ftp.example.com"); 
ftpConnect.login("user","pass"); 

System.out.println(ftpConnect.listFiles()); 
4

あなたはApache commons FTPClient

を使用することができます...

public static void main(String[] args) throws IOException { 
     FTPClient client = new FTPClient(); 
     client.connect("c64.rulez.org"); 
     client.enterLocalPassiveMode(); 
     client.login("anonymous", ""); 
     FTPFile[] files = client.listFiles("/pub"); 
     for (FTPFile file : files) { 
      System.out.println(file.getName()); 
     } 
+0

BalusCによると - クール、クイック、迅速、簡単、簡単、作品! – Casper

関連する問題