9

私はApache Common vfsを初めて使用しています。サーバーへの接続に成功しました。すでにドキュメントを読んでいますが、このコードで立ち往生しています。ディレクトリ/ファイルを一覧表示するにはどうすればよいですか?

....
Session session = null;
        FileSystemManager fsManager = null;
        FileSystem fs = null;
        try {
            String host = "host_here";
            int port = 22;

            String userStr = "user_here";
            char [] username = userStr.toCharArray();

            String passStr = "password_here";
            char [] password = passStr.toCharArray();

            session = SftpClientFactory.createConnection(host, port, username, password, null);
            //session.connect();

            System.out.println("Connected to the server");

            FileSystemOptions opts = new FileSystemOptions();
            fsManager = VFS.getManager();
            FileObject file = fsManager.resolveFile("ftp://"+userStr+":"+passStr+"@"+host+"/home/", opts);    

            // .... whats next i do here? .....

        } catch (Exception e) {
            session.disconnect();
            e.printStackTrace();
        }
...

私を助けてください、前にありがとう:)

4

1 に答える 1

8

FileObject#getChildren()メソッドを使用して、ファイルの一覧を表示できます。

FileSystemOptions opts = new FileSystemOptions();
fsManager = VFS.getManager();

// List all the files in that directory.Try to give the directory path  
FileObject localFileObject=fsManager.resolveFile("ftp://"+userStr+":"+passStr+"@"+host+"/home");
FileObject[] children = localFileObject.getChildren();
for ( int i = 0; i < children.length; i++ ){
    System.out.println( children[ i ].getName().getBaseName() );
}
// End of List Files.

FileObject file = fsManager.resolveFile("ftp://"+userStr+":"+passStr+"@"+host+"/home/", opts);

私の提案は、SFTP 操作に最適なJSCHフレームワークを使用することです。これはApache Common VFS本質的にこのフレームワークを使用しているため、複雑さは大幅に軽減されJSCHます。

于 2013-02-21T18:26:36.947 に答える