दिलचस्प पोस्ट
शेलकोड लेखन सेगमेंटेशन गलती निष्पादित करें TypeScript में स्ट्रिंग को enum में कनवर्ट करने के लिए कैसे? Jquery सीएसएस और जेएस सीमित तत्वों नोड। जेएस में वादे को समझना .NET ट्यूपल और बराबर प्रदर्शन विकिपीडिया शब्द सामग्री कैसे प्राप्त करें? बिलाव सत्र प्रबंधन – यूआरएल को फिर से लिखना और http से https पर स्विच करना वादा किया जा रहा है की सीमा संगतता चल रहा है कैसे एक छवि को आधार64 एन्कोडिंग में बदलने के लिए? # यदि DEBUG बनाम कंडीशनल ("DEBUG") आईफोन के लिए नेटवर्क टाइम प्रोटोकॉल मुझे क्यों "System.Data.DataRowView" वास्तविक सूची के बजाय मेरी सूचीबॉक्स में मिलता है? मैं अपने क्रोम एक्सटेंशन को गुप्त मोड में कैसे सक्षम कर सकता हूं? मार्ग और यूआरएल में एएसपी.नेट एमवीसी 5 संस्कृति jquery – एक निश्चित तत्व के बाद सभी तत्वों का चयन करें

जावा में फ़ाइल निर्माण तिथि निर्धारित करें

स्टैक ओवरफ्लो ( जावा में एक फ़ाइल की रचना तिथि कैसे प्राप्त करें) पर मेरा एक और सवाल है, लेकिन इसका उत्तर वास्तव में नहीं है क्योंकि ओपी को एक अलग आवश्यकता थी जो कि अन्य तंत्र के माध्यम से हल हो सकती थी। मैं एक निर्देशिका में फाइलों की एक सूची बनाने की कोशिश कर रहा हूं जो कि उम्र के आधार पर सॉर्ट किया जा सकता है, इसलिए फाइल सृजन तिथि की आवश्यकता है।

वेब के बहुत अधिक ट्रैवलिंग के बाद मैंने ऐसा करने का कोई अच्छा तरीका नहीं दिया है क्या फ़ाइल बनाने की तिथियां प्राप्त करने के लिए कोई तंत्र है?

वर्तमान में विंडोज सिस्टम पर बीटीडब्ल्यू, इसके लिनक्स सिस्टम पर भी काम करने की आवश्यकता हो सकती है। इसके अलावा, मैं गारंटी नहीं दे सकता कि नाम का एक नामकरण सम्मेलन किया जाएगा जहां निर्माण दिनांक / समय नाम में एम्बेड किया गया है।

Solutions Collecting From Web of "जावा में फ़ाइल निर्माण तिथि निर्धारित करें"

जावा नियो में सृजन समय और अन्य मेटा-डेटा तक पहुंचने के विकल्प हैं, जब तक कि फाइलसिस्टम इसे प्रदान करता है। इस लिंक को बाहर की जाँच करें

उदाहरण के लिए (@ ydaetskcoR की टिप्पणी पर आधारित):

Path file = ...; BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class); System.out.println("creationTime: " + attr.creationTime()); System.out.println("lastAccessTime: " + attr.lastAccessTime()); System.out.println("lastModifiedTime: " + attr.lastModifiedTime()); 

इस सवाल का अनुवर्ती रूप में – क्योंकि यह विशेष रूप से निर्माण समय के साथ संबंधित है और इसे नए न्यौओ कक्षाओं के माध्यम से प्राप्त करने की चर्चा करता है – यह अभी JDK7 के कार्यान्वयन में लगता है कि आप भाग्य से बाहर हैं। परिशिष्ट: वही व्यवहार ओपनजेडीके 7 में है।

यूनिक्स फाइल सिस्टम पर आप निर्माण टाइमस्टैम्प को प्राप्त नहीं कर सकते हैं, आप केवल अंतिम संशोधन समय की प्रति प्राप्त कर सकते हैं। बहुत दुख की बात है, लेकिन दुर्भाग्य से सच। मुझे यकीन नहीं है कि ऐसा क्यों है, लेकिन कोड विशेषकर ऐसा करता है जैसा कि निम्नलिखित दिखाएगा

 import java.io.IOException; import java.nio.file.*; import java.nio.file.attribute.*; public class TestFA { static void getAttributes(String pathStr) throws IOException { Path p = Paths.get(pathStr); BasicFileAttributes view = Files.getFileAttributeView(p, BasicFileAttributeView.class) .readAttributes(); System.out.println(view.creationTime()+" is the same as "+view.lastModifiedTime()); } public static void main(String[] args) throws IOException { for (String s : args) { getAttributes(s); } } } 

विंडोज़ सिस्टम पर, आप मुफ्त फाइल टाइल लाइब्रेरी का उपयोग कर सकते हैं।

यह भविष्य में जावा एनआईओ 2 (जेडीके 7) और जावा.एनआईओफ़ाइल.डेटाइट पैकेज के साथ आसान होगा।

लेकिन याद रखें कि अधिकांश लिनक्स फाइलसिस्टम फाइल निर्माण समय-स्टाम्प्स का समर्थन नहीं करता है ।

मैंने इस कोड के साथ जेडीके 7 का उपयोग करके इस समस्या का समाधान किया है:

 package FileCreationDate; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.attribute.BasicFileAttributes; import java.util.Date; import java.util.concurrent.TimeUnit; public class Main { public static void main(String[] args) { File file = new File("c:\\1.txt"); Path filePath = file.toPath(); BasicFileAttributes attributes = null; try { attributes = Files.readAttributes(filePath, BasicFileAttributes.class); } catch (IOException exception) { System.out.println("Exception handled when trying to get file " + "attributes: " + exception.getMessage()); } long milliseconds = attributes.creationTime().to(TimeUnit.MILLISECONDS); if((milliseconds > Long.MIN_VALUE) && (milliseconds < Long.MAX_VALUE)) { Date creationDate = new Date(attributes.creationTime().to(TimeUnit.MILLISECONDS)); System.out.println("File " + filePath.toString() + " created " + creationDate.getDate() + "/" + (creationDate.getMonth() + 1) + "/" + (creationDate.getYear() + 1900)); } } } 

BasicFileAttributes वर्ग का उपयोग करके Java में एक फ़ाइल की सृजन तिथि प्राप्त करने का यह एक बुनियादी उदाहरण है:

  Path path = Paths.get("C:\\Users\\jorgesys\\workspaceJava\\myfile.txt"); BasicFileAttributes attr; try { attr = Files.readAttributes(path, BasicFileAttributes.class); System.out.println("Creation date: " + attr.creationTime()); //System.out.println("Last access date: " + attr.lastAccessTime()); //System.out.println("Last modified date: " + attr.lastModifiedTime()); } catch (IOException e) { System.out.println("oops error! " + e.getMessage()); } 

java.io.File का एपीआई केवल अंतिम संशोधित समय प्राप्त करने का समर्थन करता है। और इंटरनेट इस विषय पर बहुत ही शांत है।

जब तक मैं कुछ महत्वपूर्ण याद नहीं करता, जावा लाइब्रेरी (ऊपर तक, लेकिन अभी तक 7 जावा सहित नहीं) में इस क्षमता को शामिल नहीं किया गया है। इसलिए यदि आप इसके लिए हताश थे, तो एक समाधान सिस्टम रूटिनेस कॉल करने के लिए कुछ सी (++) कोड लिखने के लिए होगा और इसे जेएनआई का उपयोग कर कॉल करेगा। इस काम के अधिकांश काम पहले से ही आपके लिए जेएनए नामक पुस्तकालय में किया गया है, यद्यपि।

इसके लिए आपको जावा में थोड़ी सी ओएस विशिष्ट कोडिंग करने की आवश्यकता हो सकती है, हालांकि, जैसा कि आप शायद वही सिस्टम कॉल और विंडोज और यूनिक्स / लिनक्स / बीएसडी / ओएस एक्स में उपलब्ध नहीं होंगे।