2010-08-26 13 views
9

मैं क्यूटी में मानक सिस्टम/उपयोगकर्ता पथ कैसे प्राप्त करूं?क्यूटी में उपयोगकर्ता का डाउनलोड फ़ोल्डर कैसे प्राप्त करें?

मुझे वास्तव में क्या चाहिए उपयोगकर्ता के डाउनलोड फ़ोल्डर का स्थान प्राप्त करना।

उत्तर

13

आप वर्तमान उपयोगकर्ता की प्रोफाइल की होम निर्देशिका में QString प्राप्त करने के लिए QDir::homePath() का उपयोग कर सकते हैं लेकिन मुझे यकीन नहीं है कि ओएस द्वारा पहचाना गया "मानक" डाउनलोड निर्देशिका है।

+0

काफी बस: ** कोई ** के बाद से हर कोई * * अब तक क्यूटी 5 का उपयोग करना चाहिए, [QStandardPaths] (https:। //doc.qt। io/qt-5/qstandardpaths.html) और [फ्रैंक ओस्टरफेल्ड] (https://stackoverflow.com/users/299399/frank-osterfeld) का [erudite answer] (https://stackoverflow.com/a/3573367/2809027) आपके दोस्त हैं। हालांकि, यह जवाब नहीं है। –

30

क्यूटी 4 में, वहाँ QDesktopServices प्रदान कर रहा है कुछ उपयोगकर्ता पथ:

https://doc.qt.io/qt-4.8/qdesktopservices.html#StandardLocation-enum

यह उदा है डेस्कटॉप और दस्तावेज़ लेकिन कोई विशिष्ट डाउनलोड फ़ोल्डर नहीं।

क्यूटी 5 में, QStandardPaths का उपयोग करें:

const QString downloadsFolder = QStandardPaths::writableLocation(QStandardPaths::DownloadLocation); 
+1

यह ध्यान देता है कि 'QStandardPaths :: writableLocation()' असुरक्षित रूप से वापस आ सकता है "... यदि स्थान निर्धारित नहीं किया जा सकता है तो एक खाली स्ट्रिंग।" इसी तरह, समान रूप से असुरक्षित 'QStandardPaths :: standardLocations()' फ़ंक्शन खाली सूची वापस कर सकता है "... यदि प्रकार के लिए कोई स्थान परिभाषित नहीं किया गया है।" किसी भी मामले में, रिटर्न वैल्यू * कभी * नहीं माना जाना चाहिए। कॉलर्स * हमेशा * खालीपन के लिए स्पष्ट रूप से परीक्षण करना चाहिए। अंत में, ध्यान दें कि 'मानक स्थान()' एक सूची देता है और इस प्रकार 'writableLocation() 'से अधिक बार एक सेन मान वापस करने की संभावना है, जो केवल एक स्ट्रिंग देता है। –

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