使用Java的卷影复制

使用Java的卷影复制,第1张

概述使用Java的卷影复制

我目前正在创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的卷影复制所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1244242.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存