साथ प्रयास करें।
public static void modify(File file)
{
int index = file.getName().indexOf(".");
//print filename
//System.out.println(file.getName().substring(0, index));
//print extension
//System.out.println(file.getName().substring(index));
String ext = file.getName().substring(index);
//use file.renameTo() to rename the file
file.renameTo(new File("Newname"+ext));
}
संपादित: जॉन की विधि फ़ाइल (विस्तार रखने) नाम बदलता है। विस्तार को बदलने के लिए कार्य करें:
public static File changeExtension(File f, String newExtension) {
int i = f.getName().lastIndexOf('.');
String name = f.getName().substring(0,i);
return new File(f.getParent() + "/" + name + newExtension);
}
यह केवल परिवर्तन पिछले विस्तार एक फ़ाइल नाम के लिए, archive.tar.gz
अर्थात् .gz
हिस्सा। इससे पहले यह लिनक्स छिपी हुई फाइलों के साथ ठीक काम करता है, जिसके लिए नाम .
से शुरू होता है यह बहुत सुरक्षित है क्योंकि getParent()
null
(यानी माता-पिता सिस्टम रूट होने की स्थिति में) लौटाता है, यह खाली स्ट्रिंग पर "कास्ट" होता है फ़ाइल कन्स्ट्रक्टर को पूरा तर्क पहले मूल्यांकन किया जाता है।
एकमात्र मामला जहां आपको एक मजाकिया आउटपुट मिलेगा, यदि आप सिस्टम रूट को स्वयं फ़ाइल का प्रतिनिधित्व करते हैं, तो null
शेष पथ स्ट्रिंग पर प्रीपेड किया गया है।
कब के लिए अपाचे एपीआई जाँच के साथ भी काम करता है, http://commons.apache.org/io/api-1.4/org/apache/commons/ io/FilenameUtils.html) –
मैं [File.renameTo] पढ़ने के साथ शुरू करूंगा (http://docs.oracle.com/javase/7/docs/api/java/io/File.html#renameTo (java.io फ़ाइल)) – MadProgrammer
@ नंदकुमार: धन्यवाद मुझे लगता है कि यह मेरे लिए कुछ उपयोगी होगा। लेकिन समस्या यह प्रतीत होती है कि मैं फ़ाइल को किसी भी समय बाद में अनजिप कर सकता हूं (किसी अन्य सत्र में हो सकता है)। मैं अपने पिछले एक्सटेंशन को कैसे संरक्षित करूं? – rahul0789