通过网络共享创建文件副本

时间:2013-01-08 01:43:49

标签: java file networking copy

我们有一个企业应用程序,可以在网络共享上保存一些文件(\\ physicalfileserver \ files \)。我们需要使用网络共享,因为应用程序安装在通过LAN连接的多个物理服务器上分布的多个应用程序服务器实例上。有时,我们需要在网络共享本身上创建某些文件的副本,并将其保存在具有不同名称的目录(在同一网络共享中)或新目录中(同样在同一网络共享上)。创建文件副本的最有效方法是什么?我不想在网络上创建任何IO流量,因为源和目标文件驻留在同一台服务器上。它还会增加创建文件副本所需的时间。然而,从目前为止我所看到的情况来看,这很困难。

  • 读取输入流中的文件,并通过具有不同路径/名称的输出流将其写回服务器。
  • 来自apache commons的FileUtils.copyFile()。
  • JAVA的NIO频道库(java.nio.channels.FileChannel.transferFrom())

但是,他们似乎都将文件复制到执行程序的服务器,然后将数据复制回网络共享,这并不是真正需要的。

大师们认为什么能够成为处理这种情况的最佳方法?由于一些限制,我只能使用JAVA 1.5 / 1.6,但我也可以使用更高版本的java版本。

应用程序安装在Windows 2008服务器上,网络共享也存在于Windows 2008服务器上。

由于

1 个答案:

答案 0 :(得分:0)

如果您想避免网络流量,您可以用Java编写一个小型服务器,允许您在本地复制文件(这将在文件服务器本身上运行)。保护这一点非常重要,因为如果有人可以使用它来覆盖系统文件,这可能会带来巨大的安全风险。