2013-04-26 26 views
169

Voglio verificare se il file esiste nella mia cartella pacchetto, ma non voglio crearne uno nuovo.Android; Verifica se il file esiste senza crearne uno nuovo

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

Questo codice verifica senza creare un nuovo file?

+2

Sembra corretto. –

+0

possibile duplicato di [Verifica se il file esiste] (http://stackoverflow.com/questions/2786655/test-if-file-exists) – piokuc

+1

@Kunok Sto controllando il tuo commento di modifica: * parole rimosse come ** serbatoi ** come sono ... *: P –

risposta

316

Il tuo pezzo di codice non ne crea uno nuovo, controlla solo se è già lì e nient'altro.

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

Non so perché nel mio caso questo codice sta creando un nuovo file . – ofnowhere

+0

Come controllare anche nella sottocartella? –

+4

Questo è così perché non esiste un metodo statico: File.exists (file String), quindi devi istanziare un nuovo oggetto File per accedere al metodo "Esiste". – Giova

20

Quando si utilizza questo codice, non si sta creando un nuovo file, è solo la creazione di un riferimento a un oggetto per quel file e testare se esiste o no.

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

Quando si dice "nella cartella del pacchetto", si intendono i file di app locali? In tal caso, è possibile ottenere un elenco utilizzando il metodo Context.fileList(). Basta scorrere e cercare il tuo file. Questo presuppone che tu abbia salvato il file originale con Context.openFileOutput().

codice di esempio (in attività):

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

Il methods nella classe Path sono sintattica, il che significa che operano sull'istanza Path. Ma alla fine è necessario accedere al sistema file per verificare che un particolare percorso esiste

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

Ha funzionato per me:

File file = new File(getApplicationContext().getFilesDir(),"whatever.txt"); 
    if(file.exists()){ 
     //Do something 
    } 
    else{ 
     //Nothing 
    } 
0
public boolean FileExists(String fname) { 
     File file = getBaseContext().getFileStreamPath(fname); 
     return file.exists(); 
} 
Problemi correlati