2012-03-15 11 views
6

का उपयोग कर वॉल्यूम छाया प्रतिलिपि मैं वर्तमान में बैकअप एप्लिकेशन बना रहा हूं जहां हमें अन्य अनुप्रयोगों द्वारा उपयोग की जाने वाली फ़ाइलों को पढ़ने का एक तरीका चाहिए और हम उपयोगकर्ताओं की फ़ाइलों पर लॉकिंग को कम करना भी चाहते हैं। खिड़की की वॉल्यूम छाया प्रतिलिपि सेवा का उपयोग करना हमारे लिए इसे प्राप्त करने का एक सही तरीका प्रतीत होता है।जावा

हमारी समस्या हालांकि यह है कि हम जावा का उपयोग कर रहे हैं। क्या वैसे भी इसे लागू करने का कोई आसान तरीका है (या तो कुछ लाइब्रेरी या संभवतः कुछ सीएलआई का उपयोग करना)?

+1

यह सिर्फ एक राय है, लेकिन आप जो करने की कोशिश कर रहे हैं वह "मूल" भाषा, जैसे सी ++ के लिए एक नौकरी है। जावा से ओएस एपीआई से कनेक्ट करने में यह एक बड़ी परेशानी है और यह धीमी गति से धीमा है। – Jochen

+1

[जेएनआई धीमा नहीं है] (http://stackoverflow.com/a/7809300/351861) - और यदि यह वास्तव में आपके लिए है ... अच्छा ... आपके पास आपके कोड में सबसे बड़ी प्रोग्रामिंग गलतियां हैं। जेएनआई ** के लिए देशी पुस्तकालयों को लिखने के लिए यह भी * परेशानी नहीं है ** ** ** इसके बजाय .... असुविधाजनक - यदि आपने सी/सी ++ कभी नहीं लिखा है तो आपको सबसे ज्यादा सीखने के लिए बहुत कुछ मिलेगा और कुछ चीजों पर विचार करना होगा लेकिन यह इसके बारे में है - यह भी है [जेएनए] (https://en.wikipedia.org/wiki/Java_Native_Access) जो इसे थोड़ा आसान बनाता है और * * परेशानी "* – specializt

उत्तर

2

तो, मुझे वीएसएस के बारे में बहुत कुछ पता नहीं है, लेकिन जावा से विंडोज मूल एपीआई एक्सेस करने के मामले में, मैं जेएनए की जांच करूंगा। आपको अच्छी तरह से पता चल सकता है कि किसी ने पहले ही जेएनए को प्रासंगिक एपीआई परिभाषाएं बंद कर दी हैं।

+1

जेएनए परिभाषाओं के लिए कोई संकेतक बनाता है? – CAFxX

1

हम्म ... जावा के माध्यम से यह कर मुश्किल और बहुत त्रुटि प्रवण

एक आसान यह जो तुम क्या वीएसएस वीएसएस एपीआई

का उपयोग कर क्या करना चाहते हैं करता है एक छोटा सा देशी DLL लिख रहा है ऐसा करने के लिए तरीका हो सकता है और फिर सी # पिनवोक या सी ++/सीएलआई का उपयोग कर ... और फिर आप किसी अन्य सीएलआई अनुपालन भाषा

7

का उपयोग कर सकते हैं मैंने पहले ऐसा किया था।

सबसे आसान तरीका है हमें पता चला (माइक्रोसॉफ्ट की वेबसाइट से वीएसएस के साथ एक जल्दी शुरू करने के लिए डेमो उपकरण) vshadow.exe के 4 संस्करणों का निर्माण करना था: XP/बाद में और 86/64 के भीतर प्रत्येक लक्ष्य plaform के लिए एक।

\\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyXX है कि आप अपने ड्राइव अक्षर (उदाहरण के लिए D:) को बदलने के लिए उपयोग कर सकते हैं कि जावा फ़ाइल एपीआई साथ काम करता है: VShadow मूल रूप से बना सकते हैं या स्नैपशॉट को नष्ट करने और प्राप्त करने के लिए पथ है कि तरह लग रहा है की अनुमति देते हैं। वीएसएस एसडीके से वीशैडो का संस्करण पढ़ा और लिखना है, यह एक्सई की तुलना में वही संस्करण नहीं है जिसे आप सीधे डाउनलोड कर सकते हैं जिसे केवल पढ़ा जाता है।

फिर, जावा में, एक एकीकृत इंटरफेस के साथ दो सीएलआई रैपर लिखना आसान है (XP और बाद के बीच VShadow के दो अलग-अलग व्यवहार को संभालने के लिए)।

शुभकामनाएं।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^