如何使用Java凭证连接到网络驱动器?

时间:2016-08-09 12:42:13

标签: java linux windows

我正在使用BufferedReader读取.txt文件。但是我想要读取哪些文件存储到网络驱动器中(例如:data(\ 10.10.30.50)(Z :))。

对于连接到网络驱动器,驱动器只询问密码,在给出密码后,我能够读取文件。

如何使用Java代码连接到网络驱动器,我想使用Java代码解锁该驱动器。

1 个答案:

答案 0 :(得分:0)

为此目的使用Samba(CIFS)。我为此目的使用JCIFS。

NtlmPasswordAuthentication credentials = new NtlmPasswordAuthentication(domain+";"+user+":"+pass);

String fileContent(String path) {
        StringBuilder builder = null;
        try {
            SmbFile smbfile = new SmbFile(path, credentials);
            builder = readFileContent(smbfile);         

        } catch (IOException e) {
            e.printStackTrace();
        }
        return builder.toString();
}

private StringBuilder readFileContent(SmbFile sFile){
    BufferedReader reader = null;
    try{
        reader = new BufferedReader(new InputStreamReader(new SmbFileInputStream(sFile)));
    }
    catch(IOException e){
        e.printStackTrace();
    }
    StringBuilder builder = new StringBuilder();
    String in = null;
    try{
        while((in = reader.readLine())!=null){
            builder.append(in).append("\n");
        }
        reader.close();
    }
    catch(IOException e){
        e.printStackTrace();
    }
    return builder;
}