
我目前正在创build一个备份应用程序,我们需要一种方法来读取其他应用程序正在使用的文件,同时我们也希望尽量减less我们对用户文件的locking。 使用Window的卷影复制服务似乎是完美的方式。
然而,我们的问题是我们正在使用Java。 是否有任何简单的方法来实现这个(无论是使用一些库,甚至可能是一些Cli)?
我之前做过。
我们发现的最简单的方法是构建4个版本的vshadow.exe (用于从Microsoft网站快速启动VSS的演示工具):针对XP / later和x86 / x64中的每个目标平台。 VShadow基本上允许创建或销毁快照并检索如下所示的路径:
\?GLOBALROOTDeviceHarddiskVolumeShadowcopyXX ,您可以使用它替换与JAVA file API一起使用的驱动器盘符(例如D: \?GLOBALROOTDeviceHarddiskVolumeShadowcopyXX 。 VSS SDK的VShadow版本是可读写的,与可以直接下载的exe版本不同,只读。
然后,在Java中,使用统一接口编写两个Cli封装器(用于处理XP和更高版本之间的VShadow的两种不同行为)很容易。
祝你好运。
所以,我不太了解VSS,但是从Java访问windows本机API的方面,我会检查出JNA。 您可能会发现有人已经将相关API定义移植到JNA。
嗯…通过Java做它可能会非常棘手,非常容易出错
一个简单的方法就是编写一个小的本机DLL,它可以做VSS使用VSS API所要做的事情
然后使用C#pInvoke或C ++ / Cli …然后您可以使用任何其他Cli兼容的语言
总结以上是内存溢出为你收集整理的使用Java的卷影复制全部内容,希望文章能够帮你解决使用Java的卷影复制所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)