एंड्रॉयड; जाँच करें कि क्या कोई नया बनाए बिना फ़ाइल मौजूद है


227

मैं जाँच करना चाहता हूँ कि क्या फ़ाइल मेरे पैकेज फ़ोल्डर में मौजूद है, लेकिन मैं एक नया बनाना नहीं चाहता।

File file = new File(filePath);
if(file.exists()) 
     return true;

क्या यह कोड एक नई फ़ाइल बनाए बिना जाँच करता है?



1
@Kunok मैं अपनी टिप्पणी संपादित करें की जाँच कर रहा हूँ: इस तरह के रूप में हटाया शब्द टैंक के रूप में वे कर रहे हैं ... : पी
केविन गुआन

1
@ केविनगुआन ओह यस माय बैड, जस्ट होम फ्रॉम द न्यू ईव पार्टी इसलिए मैं ठीक से नहीं लिख पा रहा था :)
कुनोक

जवाबों:


440

आपके कोड का एक नया हिस्सा नहीं बनाता है, यह केवल जाँच करता है कि क्या यह पहले से ही है और कुछ नहीं।

File file = new File(filePath);
if(file.exists())      
//Do something
else
// Do something else.

5
पता नहीं क्यों मेरे मामले में यह कोड एक नई फ़ाइल बना रहा है।
ofnowhere

सब फोल्डर में भी कैसे चेक करें?
प्रतिक बुटानी

4
यह वैसा ही है क्योंकि कोई स्थिर विधि नहीं है: File.exists (स्ट्रिंग फ़ाइल), इसलिए आपको 'Exists' विधि का उपयोग करने के लिए एक नई फ़ाइल ऑब्जेक्ट को इंस्टेंट करना होगा।
जिओवा

3
मुझे लगता है कि ओपी नई फ़ाइल ऑब्जेक्ट बनाने की इच्छा नहीं रखता है।
एंड्रोदेव

1
@AndroDev नहीं - वह नया फ़ाइल बनाने की इच्छा नहीं करता है, उत्तर फ़ाइल के लिए नया संदर्भ बनाता है।
मरिअन पाडज़िओच

31

जब आप इस कोड का उपयोग करते हैं, तो आप एक नई फ़ाइल नहीं बना रहे हैं, यह सिर्फ उस फ़ाइल और परीक्षण के लिए एक ऑब्जेक्ट संदर्भ बना रहा है यदि यह मौजूद है या नहीं।

File file = new File(filePath);
if(file.exists()) 
    //do something

21

इसने मेरे लिए काम किया:

File file = new File(getApplicationContext().getFilesDir(),"whatever.txt");
    if(file.exists()){
       //Do something
    }
    else{
       //Nothing
     }

2
यह समाधान है यदि आपके पास केवल फ़ाइल नाम है और इसका पथ नहीं है
Zach

1
@Zach नहीं वास्तव में, यह पथ पहले पैरामीटर मैं (। GetApplicationContext () getFilesDir ()) भेजा होगा
जोर्डी Vicens

8

जब आप कहते हैं "आप पैकेज फ़ोल्डर में," क्या आप अपने स्थानीय एप्लिकेशन फ़ाइलों का मतलब है? यदि हां, तो आप Context.fileList () विधि का उपयोग करके उनमें से एक सूची प्राप्त कर सकते हैं । बस के माध्यम से iterate और अपनी फ़ाइल के लिए देखो। यह मानते हुए कि आपने मूल फ़ाइल को Context.openFileOutput () के साथ सहेजा है ।

नमूना कोड (एक गतिविधि में):

public void onCreate(...) {
    super.onCreate(...);
    String[] files = fileList();
    for (String file : files) {
        if (file.equals(myFileName)) {
            //file exits
        }
    }
}

5

methodsपथ कक्षा में वाक्यात्मक हैं, जिसका अर्थ है कि वे पथ उदाहरण पर कार्य करते हैं। लेकिन अंततः आपको fileसिस्टम को एक्सेस करने के लिए यह सत्यापित करना होगा कि एक विशेष पथ मौजूद है

 File file = new File("FileName");
 if(file.exists()){
 System.out.println("file is already there");
 }else{
 System.out.println("Not find file ");
 }

1
public boolean FileExists(String fname) {
        File file = getBaseContext().getFileStreamPath(fname);
        return file.exists();
}

0

कोटलिन एक्सटेंशन गुण

फ़ाइल ऑब्जेक्ट बनाते समय कोई फ़ाइल नहीं बनाई जाएगी, यह केवल एक इंटरफ़ेस है।

फ़ाइलों के साथ काम करना आसान बनाने के लिए, .toFileउड़ी में एक मौजूदा कार्य है

आगे उपयोग को आसान बनाने के लिए आप फ़ाइल और / या उरी पर एक एक्सटेंशन प्रॉपर्टी भी जोड़ सकते हैं।

val File?.exists get() = this?.exists() ?: false
val Uri?.exists get() = File(this.toString).exists()

तो बस का उपयोग करें uri.existsया file.existsजाँच करने के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.