2012-01-11 4 views
6

में कनवर्ट करें मेरे पास IFile ऑब्जेक्ट है जिसे java.io.File ऑब्जेक्ट के रूप में उपयोग करने की आवश्यकता है। मैं निम्नलिखित कोड का उपयोग कर परिवर्तित कर रहा हूँ।IFile को फ़ाइल

file = ifile.getFullPath().toFile(); 

लेकिन file.exists() पर कॉल झूठी वापसी करता है।

+0

"लेकिन file.exists() को कॉल झूठी देता है।" इसका मतलब है कि या तो फ़ाइल बाहर नहीं निकलती है या पथ अमान्य है। क्या आपने 'ifile.exists()' भी कोशिश की? –

उत्तर

9

आप IResource.getLocation() का उपयोग करना चाहते हैं जो स्थानीय फ़ाइल पथ लौटाता है। हालांकि, जावाडोक टिप्पणियों को ध्यान से पढ़ें क्योंकि आप यह नहीं मान सकते कि संसाधन को वास्तविक फ़ाइल द्वारा समर्थित किया जाता है (यह प्रोजेक्ट कैसे स्थापित किया जाता है इस पर निर्भर करता है)।

+4

फ्रांसिस का सुझाव ठीक काम करता है। एक और विकल्प जिसे मैंने अंत में उपयोग किया था वह है 'file = ifile.getRawLocation()। MakeAbsolute()। ToFile(); ' – Viral

3

आईफाइल वास्तविक वर्कस्पेस के लिए क्वेरी का एक हिस्सा है, वास्तविक फ़ाइल नहीं। आईपैथ क्वेरी का भी हिस्सा है जो वर्कस्पेस पर मान्य है।

एक आईफाइल शारीरिक रूप से वर्कस्पेस द्वारा निहित नहीं हो सकता है, उदाहरण के लिए। क्लोनड गिट प्रोजेक्ट। कुछ IFile एक वास्तविक लिंक हो सकता है, वास्तविक फ़ाइल नहीं। और कुछ IFile वास्तव में दूरस्थ स्थान पर मौजूद हो सकता है।

ग्रहण "ईएफएस" नामक स्वतंत्र फ़ाइल सिस्टम का उपयोग करता है। ईएफएस वर्कस्पेस और मूल फ़ाइल सिस्टम पर फ़ाइलों का प्रबंधन करता है। आप स्थानीय फाइल को ईएफएस के साथ ढूंढ सकते हैं। (यदि यह स्थानीय में मौजूद है)

IFile file = ...; 

// gets URI for EFS. 
URI uri = file.getLocationURI(); 

// what if file is a link, resolve it. 
if(file.isLinked()){ 
    uri = file.getRawLocationURI(); 
} 

// Gets native File using EFS 
File javaFile = EFS.getStore(uri).toLocalFile(0, new NullProgressMonitor()); 
संबंधित मुद्दे