2011-12-07 19 views
8

के साथ सिम्लिंक को हल करें मुझे उम्मीद है कि ऐसा करने का एक आसान तरीका है लेकिन मैं इसे कुछ गहन गुगल के साथ भी उजागर नहीं कर पाया।बूस्ट फाइल सिस्टम

मैं सिमलिंक (ऑन * निक्स सिस्टम) बिंदु को स्थान खोजने के लिए boost :: filesystem का उपयोग कैसे कर सकता हूं?

उत्तर

11

यदि आप boost::filesystem के v3 का उपयोग कर रहे हैं तो आप संकल्पित सभी सिम्लिंक के साथ पथ प्राप्त करने के लिए canonical फ़ंक्शन का उपयोग कर सकते हैं। यह आपके सिम्लिंक के पथ को हल करने के लिए काम कर सकता है।

उदाहरण के लिए, यदि sym.link एक सिमलिंक है:

boost::filesystem::path resolved = boost::filesystem::canonical('sym.link'); 

मैं वास्तव में करने की कोशिश की नहीं किया है इस तो मैं गलत हो सकता है, लेकिन समझ बनाने के लिए लगता है।

वैकल्पिक रूप से, आप read_symlink

5

के साथ कुछ भाग्य हो सकता है आप संस्करण 3 के read_symlink() फ़ंक्शन का उपयोग कर सकते हैं:

path read_symlink(const path& p); 
path read_symlink(const path& p, system::error_code& ec); 

रिटर्न: p एक प्रतीकात्मक कड़ी, एक पथ के लिए हल हो जाती है ऑब्जेक्ट उस प्रतीकात्मक लिंक की सामग्री युक्त है। अन्यथा एक खाली पथ वस्तु।

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