2010-11-25 12 views
7

मैं सी के साथ ++ लिनक्स मंच के तहत चल रहा Boost::FileSystem लाइब्रेरी का उपयोग कर रहा हूँ और मैं एक सवाल निम्नलिखित है:सी ++: बढ़ावा फाइल सिस्टम एक विशिष्ट समय पुरानी फ़ाइलों की एक सूची वापस जाने के लिए

मैं की एक सूची है चाहते हैं फाइलें जो किसी दिए गए दिनांक समय से पुराने संशोधित हैं। मैं नहीं जानता कि boost::FileSystem के रूप में इस तरह के एक विधि प्रदान करते हैं या नहीं:

vector<string> listFiles = boost::FileSystem::getFiles("\directory", "01/01/2010 12:00:00"); 

यदि हाँ, आप नमूना कोड उपलब्ध कराएं?

+0

संभावित डुप्लिकेट [मैं उस फ़ोल्डर में फ़ाइलों की एक सूची कैसे प्राप्त कर सकता हूं जिसमें फ़ाइलों को संशोधित दिनांक समय के साथ सॉर्ट किया गया है] (http://stackoverflow.com/questions/4283546/how-can-i-get- एक सूची-में-फाइल-इन-ए-फ़ोल्डर-इन-द-फाइल-हैं-सॉर्ट-इन-मोड) – dandan78

उत्तर

11

बूस्ट :: फाइल सिस्टम इस तरह एक फ़ंक्शन की पेशकश नहीं करता है। एक आधार के अपने खुद के लिखने के रूप में

http://www.boost.org/doc/libs/1_45_0/libs/filesystem/v3/doc/reference.html#last_write_time

: लेकिन आप इसका उपयोग कर सकते हैं।

#include <boost/filesystem/operations.hpp> 
#include <ctime> 
#include <iostream> 

int main(int argc , char *argv[ ]) { 
    if (argc != 2) { 
     std::cerr << "Error! Syntax: moditime <filename>!\n" ; 
     return 1 ; 
    } 
    boost::filesystem::path p(argv[ 1 ]) ; 
    if (boost::filesystem::exists(p)) { 
     std::time_t t = boost::filesystem::last_write_time(p) ; 
     std::cout << "On " << std::ctime(&t) << " the file " << argv[ 1 ] 
    << " was modified the last time!\n" ; 
     std::cout << "Setting the modification time to now:\n" ; 
     std::time_t n = std::time(0) ; 
     boost::filesystem::last_write_time(p , n) ; 
     t = boost::filesystem::last_write_time(p) ; 
     std::cout << "Now the modification time is " << std::ctime(&t) << std::endl ; 
     return 0 ; 
    } else { 
     std::cout << "Could not find file " << argv[ 1 ] << '\n' ; 
     return 2 ; 
    } 
} 
+0

धन्यवाद। मैंने बूस्ट से यह नमूना कोड देखा: फ़ाइल सिस्टम, लेकिन मैं फ़ाइलों को कैसे सॉर्ट कर सकता हूं? – olidev

+1

@JoesyXHN: कृपया मुझे वह कोड दिखाएं जो आपने अभी तक प्राप्त किया है, और मैं आपकी मदद करने में प्रसन्न हूं। लेकिन आपके पक्ष में कुछ प्रयास आवश्यक हैं। – nabulke

+1

हैलो nabulke। मैं कुछ ऐसा करने की कोशिश करता हूं http://stackoverflow.com/q/7056882/434051, मैंने कोड डेमो प्रदान किया, और मुझे यह नहीं मिला कि क्या गलत है (जबकि यह आपके जैसा दिखता है) = ( – Rella

1

आप एक std :: नक्शा (last_write_time, फ़ाइल का नाम) का उपयोग फ़ाइल अंतिम संशोधित समय और पूर्ण फ़ाइल पथ स्टोर करने के लिए कर सकते हैं और सुलझाने के लिए एक में आदेश ट्रावर्सल कार्य करें: यहां कुछ नमूना कोड last_write_time उपयोग कर रहा है आँकड़े।

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