मैं फ़ाइल सहेजने के लिए एक संवाद बनाने के लिए java.awt.FileDialog का उपयोग कर रहा हूं। समस्या यह है कि जब मैं एक सुझाए गए (डिफ़ॉल्ट) फ़ाइल नाम निर्दिष्ट करता हूं, तो FileDialog इसके विस्तार को स्ट्रिप करता है। उदाहरण:जावा स्ट्रिप्स में फ़ाइलडिअलॉग सहेजें प्रारंभिक फ़ाइल एक्सटेंशन
import java.awt.*;
import java.io.*;
public class SaveFile {
public static void main(String[] args) {
FileDialog fileDialog = new FileDialog(new Frame(), "Save", FileDialog.SAVE);
fileDialog.setFilenameFilter(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
});
fileDialog.setFile("Untitled.txt");
fileDialog.setVisible(true);
System.out.println("File: " + fileDialog.getFile());
}
}
मैं उम्मीद होती है कि जब FileDialog प्रकट होता है, डिफ़ॉल्ट फ़ाइल नाम "Untitled.txt" है, लेकिन इसके बजाय यह सिर्फ "शीर्षकहीन" है। जब उपयोगकर्ता सहेजें पर क्लिक करते हैं, तो मैं एक्सटेंशन के बिना फ़ाइल नाम वापस ले जाता हूं। FileDialog यह विंडोज और ओएस एक्स दोनों पर करता है।
मुझे यह नहीं मिला। FileDialog जानबूझकर विस्तार को क्यों रोक देगा? क्या इसके लिए कुछ तार्किक कारण है? दस्तावेज़ीकरण इस पर चर्चा नहीं करता है। समाधान के लिए, मैं बस स्ट्रिंग FileDialog देता है, लेकिन अभी भी, यह एक बग की तरह लगता है कि करने के लिए एक्सटेंशन जोड़ सकते हैं ...
(ध्यान दें कि मैं JFileChooser का उपयोग नहीं कर सकते हैं;। मैं देशी AWT FileDialog जरूरत है)
अंतर्दृष्टि के लिए धन्यवाद। आप वास्तव में सही हैं कि विंडोज पर व्यवहार "छुपाएं एक्सटेंशन" सेटिंग पर निर्भर करता है। और आप सही हैं, यह एक्सटेंशन के साथ फ़ाइल नाम लौटाता है, भले ही "एक्सटेंशन छुपाएं" चालू हो और उपयोगकर्ता स्पष्ट रूप से एक्सटेंशन को जोड़ नहीं सके। – vocaro
समस्या जावा के मैक संस्करण के लिए अलग होने लगती है। मैक में "एक्सटेंशन छुपाएं" सेटिंग भी है; हालांकि, यदि यह सेटिंग चालू है, तो एक्सटेंशन संवाद टेक्स्ट फ़ील्ड में छिपा हुआ है, लेकिन लौटाई गई स्ट्रिंग में एक्सटेंशन शामिल नहीं है। यह स्पष्ट रूप से एक क्रॉस-प्लेटफॉर्म बग है, इसलिए मैं ऐप्पल के साथ एक रिपोर्ट दर्ज करूंगा। आपकी सहायता के लिए एक बार फिर से धन्यवाद। – vocaro
@ वोकारो क्या आपने एक रिपोर्ट फाइल की थी? कोई लिंक? आपने इस मुद्दे को कैसे हल किया? – Igor