从linux服务器在windows服务器上创建zip文件(使用jcifs)

时间:2017-05-26 13:32:30

标签: java linux windows jcifs

我需要使用JCIFS从Linux机器创建一个zip文件到Windows Server。我尝试创建zip,但是获得了一个损坏的。我使用的代码粘贴在下面。

public boolean createZip(String fileName, String... files) 
{
    NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(domain, userName, password);
    SmbFile smbFile = new SmbFile(fileName, auth);
    try (SmbFileOutputStream zipOutStream = new SmbFileOutputStream(smbFile);) {
        String[] fileArray1 = files;
        for (String file : fileArray1) 
        {
            writeToZipFile(file, zipOutStream, authentication);
        }
    } 
    catch (Exception e)
    {
        LOGGER.error("From createZip", e);
    }
    return true;
}

private void writeToZipFile(String file, SmbFileOutputStream zipOutStream,
        final NtlmPasswordAuthentication authentication) throws IOException 
{
    FileInputStream inputStream = new FileInputStream(file);
    final byte[] buf = new byte[16 * 1024 * 1024];
    int len;
    while ((len = inputStream.read(buf)) > 0) {
        zipOutStream.write(buf, 0, len);
    }
}

注意:当我通过在临时文件夹(Linux机器)中创建zip文件以不同方式尝试时,尝试使用SmbFile的renameTo方法移动它。我收到了身份验证失败异常(“登录失败:未知用户名或密码错误。”)。

0 个答案:

没有答案