我正在尝试将文件从本地计算机复制到 Windows 服务器中的共享文件夹。这是我使用的功能。
public static void copyFileUsingJcifs(final String domain, final String userName, final String password, final String sourcePath, final String destinationPath) throws IOException {
final NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(domain, userName, password);
final SmbFile sFile = new SmbFile(destinationPath, auth);
final SmbFileOutputStream smbFileOutputStream = new SmbFileOutputStream(sFile);
final FileInputStream fileInputStream = new FileInputStream(new File(
sourcePath));
final byte[] buf = new byte[16384];
int len;
while ((len = fileInputStream.read(buf)) > 0) {
smbFileOutputStream.write(buf, 0, len);
}
fileInputStream.close();
smbFileOutputStream.close();
}
I tried this https://stackoverflow.com/questions/10533653/jcifs-file-retrieval-is-too-slow-to-be-usable答案,但对我不起作用。当我进行正常复制(复制和粘贴)时,只需要最多8minutes对于 25MB 的文件。但是当我使用我的java程序使用这个函数时,它花费的时间比20分钟。我怎样才能使复制速度更快?
提前致谢。
如果它可以帮助其他人...我有一个类似的问题,但在另一个方向(使用 JCIFS 缓慢复制到 Windows)。通过添加解决了该问题
-Djcifs.resolveOrder=DNS
到属性列表。 (这默认包含 http://www.stderr.org/doc/libjcifs-java-doc/resolver.htmlBCAST(向 255.255.255.255 发送 NetBIOS 名称查询广播)是造成巨大延迟的原因。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)