2016-09-30 14 views
1

私はWindowsでファイルを持っており、このファイルをlinuxから読みたいと思っています。以下のコードは、Windowsから実行しようとするとうまく動作しますが、Linuxから実行しようとするとうまくいきます。WindowsからLinuxへのリモートファイルをApacheのコモンズvfsで読み取る方法は?

"Could not read from "file:///10.0.0.1/C$/myfolder/test.txt" because it is not a file." 

ここは私のコードです。

FileSystemOptions opts = new FileSystemOptions(); 
    DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth); 

    FileObject fo = VFS.getManager().resolveFile(remoteFilePath, opts); 

    InputStream inputStream = fo.getContent().getInputStream(); //this line throws exception 

答えて

1

解決策があると思います。

私は同じエラーを持っていたし、このようなオプションを設定することで、それを解決:

private void readSFTP(){   
// ... 
final FileObject sftpOriginObj = manager.resolveFile(ftpOrigin, getSFTPOptions()); 
// ... 
} 

    private static FileSystemOptions getSFTPOptions() throws FileSystemException { 
      // Create SFTP options 
      final FileSystemOptions opts = new FileSystemOptions(); 

      // SSH Key checking 
      SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, "no"); 

      // Using the following line will cause VFS to choose File System's Root 
      // as VFS's root. If I wanted to use User's home as VFS's root then set 
      // 2nd method parameter to "true" 

      // Root directory set to user home 
      SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, false); 

      // Timeout is count by Milliseconds 
      SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, 10000); 

      return opts; 
     } 

は、この情報がお役に立てば幸いです。

関連する問題