Android; Yeni bir dosya oluşturmadan dosyanın var olup olmadığını kontrol edin


227

Paket klasörümde dosyanın olup olmadığını kontrol etmek istiyorum, ancak yeni bir tane oluşturmak istemiyorum.

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

Bu kod yeni bir dosya oluşturmadan kontrol eder mi?



1
@Kunok Düzenleme yorumunuzu kontrol ediyorum: tanklar gibi kelimeler kaldırıldı ... : P
Kevin Guan

1
@KevinGuan Oh evet benim kötüm, yeni eve partiden eve yeni geldim, bu yüzden düzgün
yazamadım

Yanıtlar:


440

Kod kümeniz yeni bir tane oluşturmaz, sadece zaten orada olup olmadığını ve başka bir şey olup olmadığını kontrol eder.

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

5
Neden benim durumumda bu kodun yeni bir dosya oluşturduğunu bilmiyorum.
ofnowhere

Alt klasöre nasıl giriş yapılır?
Pratik Butani

4
Statik bir yöntem olmadığı için böyle bir durum söz konusudur: File.exists (String file), bu yüzden 'Exists' yöntemine erişmek için yeni bir File nesnesi başlatmanız gerekir.
Giova

3
Bence OP yeni bir dosya nesnesi oluşturmak istemiyor.
AndroDev

1
@AndroDev hayır - yeni DOSYA oluşturmak istemiyor, cevap dosyaya yeni REFERANS yaratıyor.
Marian Paździoch

31

Bu kodu kullandığınızda, yeni bir Dosya oluşturmuyorsunuz, yalnızca bu dosya için bir nesne başvurusu oluşturuyor ve var olup olmadığını test ediyor.

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

21

Benim için çalıştı:

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

2
Bu, yalnızca dosya adına sahipseniz ve yoluna sahip değilseniz çözümdür
Zach

1
@Zach Gerçekten değil, yol gönderdiğim ilk parametre olurdu (getApplicationContext (). GetFilesDir ())
Jordi Vicens

8

"Paket klasörünüzde" derken, yerel uygulama dosyalarınızı mı kastediyorsunuz? Eğer öyleyse Context.fileList () yöntemini kullanarak bunların bir listesini alabilirsiniz . Sadece tekrarlayın ve dosyanızı arayın. Orijinal dosyayı Context.openFileOutput () ile kaydettiğiniz varsayılmaktadır. .

Örnek kod (bir Faaliyette):

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

5

methodsYol sınıfında onlar Yolu örneği üzerinde işlem yani sözdizimsel bulunmaktadır. Ancak sonunda filebelirli bir Yolun var olduğunu doğrulamak için sisteme erişmelisiniz.

 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

Kotlin Eklenti Özellikleri

Bir File nesnesi oluşturduğunuzda hiçbir dosya oluşturulmaz, bu yalnızca bir arabirimdir.

Dosyalarla çalışmayı kolaylaştırmak .toFileiçin Uri'de mevcut bir işlev var

Ayrıca kullanımı daha da basitleştirmek için Dosya ve / veya Uri'ye bir uzantı özelliği ekleyebilirsiniz.

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

Sonra kontrol etmek için uri.existsveya file.existsdüğmesini kullanın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.