सी ++ का उपयोग करके, मुझे यह पता लगाने की आवश्यकता है कि दिया गया पथ (फ़ाइल नाम) पूर्ण या सापेक्ष है या नहीं। मैं विंडोज एपीआई का उपयोग कर सकता हूं, लेकिन बूस्ट जैसे थर्ड-पार्टी लाइब्रेरीज़ का उपयोग नहीं करना चाहता, क्योंकि मुझे प्रयोगात्मक निर्भरताओं के बिना छोटे विंडोज एप्लिकेशन में इस समाधान की आवश्यकता है।पता लगाएं कि पथ पूर्ण या रिश्तेदार है
उत्तर
विंडोज एपीआई में PathIsRelative
है। यह रूप में परिभाषित किया गया है:
BOOL PathIsRelative(
_In_ LPCTSTR lpszPath
);
हम्म। मैंने थोड़ा सा किया। –
@ लाइटनेसरेसेसिन ऑर्बिट: हालांकि यह 99% बार काम करेगा, यह एक सही समाधान नहीं है। यहां दो प्रमुख कारण हैं: 1. तकनीकी रूप से तीन रिटर्न विकल्प होना चाहिए: 'हां', 'नहीं', और 'त्रुटि निर्धारण'। 2. यह सीमा: अधिकतम लंबाई MAX_PATH'। दुर्भाग्य से मुझे एक विंडोज एपीआई नहीं मिला जो यह विश्वसनीय रूप से कर सकता है ... – ahmd0
की शुरुआत के साथ सी ++ 14/सी ++ 17 आप filesystem library
#include <filesystem> // C++17 (or Microsoft-specific implementation in C++14)
std::string winPathString = "C:/tmp";
std::filesystem::path path(winPathString); // Construct the path from a string.
if (path.is_absolute()) {
// Arriving here if winPathString = "C:/tmp".
}
if (path.is_relative()) {
// Arriving here if winPathString = "".
// Arriving here if winPathString = "tmp".
// Arriving here in windows if winPathString = "/tmp". (see quote below)
}
पथ से
is_absolute()
औरis_relative()
उपयोग कर सकते हैं "/" एक पर निरपेक्ष है POSIX ओएस, लेकिन विंडोज पर सापेक्ष है।
सी ++ 14 उपयोग में std::experimental::filesystem
#include <experimental/filesystem> // C++14
std::experimental::filesystem::path path(winPathString); // Construct the path from a string.
मैं 1.63 को बढ़ावा देने की है और VS2010 (C++ पूर्व C++ 11), और निम्नलिखित कोड काम करता है। पर [अपने शोध में काफी प्रयास डाल नहीं]
std::filesystem::path path(winPathString); // Construct the path from a string.
if (path.is_absolute()) {
// Arriving here if winPathString = "C:/tmp".
}
- 1. PHP रिश्तेदार और पूर्ण पथ
- 2. पता लगाएं कि
- 3. रिश्तेदार पथ
- 4. पता लगाएं कि कोड
- 5. पता लगाएं कि हैश
- 6. पता लगाएं कि स्ट्रिंग
- 7. पता लगाएं कि UIScrollView
- 8. पता लगाएं कि पाइथन
- 9. पता लगाएं कि एंड्रॉइड
- 10. पता लगाएं कि Django
- 11. पता लगाएं कि क्रैश या पावरफेलर
- 12. पता लगाएं कि फ़ाइल
- 13. पता लगाएं कि यूआईएममेज पीएनजी या जेपीईजी है या नहीं?
- 14. जांचें कि कोई पथ पूर्ण या सापेक्ष
- 15. RESTful हाइपरमीडिया, रिश्तेदार या पूर्ण यूआरआई के
- 16. पता लगाएं कि लिनक्स
- 17. पता लगाएं कि सी #
- 18. रिश्तेदार निरपेक्ष पथ पर्ल
- 19. चांदी की रोशनी ... रिश्तेदार पथ
- 20. एक रिश्तेदार पथ
- 21. पता लगाएं कि सार्वजनिक आईपी पता गतिशील या स्थैतिक
- 22. पता लगाएं कि मॉनीटर सी #
- 23. पता लगाएं कि वर्तमान समय
- 24. पता लगाएं कि ओएस एक्स
- 25. पता लगाएं कि qt रनटाइम
- 26. पता लगाएं कि टाइप तत्काल
- 27. पता लगाएं कि उपयोगकर्ता द्वारा
- 28. पता लगाएं कि फोकसआउट किसी कुंजीपटल के कारण है या
- 29. पता लगाएं कि कोई टेक्स्टबॉक्स अक्षम है या jquery
- 30. पता लगाएं कि HTML5 इतिहास समर्थित है या नहीं
बधाई (http://msdn.microsoft.com/en-us/library/bb773660%28v=vs.85%29.aspx)। –
@ टोमालक गेरेकल - आपका प्रयास "अधिक प्रयास नहीं कर रहा" में क्या है? वैसे भी, वही लिंक पहले से ही उत्तर के रूप में पोस्ट किया गया है, मैं वास्तव में आपके प्रयास, धन्यवाद, दोस्त की सराहना करता हूं। –
@AlexFarber: उनका मुद्दा यह है कि यदि आपने कोशिश की तो एक Google खोज आपको सही जगह पर ले जाती। –