アンドロイド; 新しいファイルを作成せずにファイルが存在するかどうかを確認します


227

ファイルがパッケージフォルダーに存在するかどうかを確認したいのですが、新しいファイルを作成したくありません。

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

このコードは、新しいファイルを作成せずにチェックしますか?



1
@Kunok私はあなたの編集コメントをチェックしています:タンクなどの単語をそのまま削除しました...:P
Kevin Guan

1
@KevinGuanああ、そうだ、新しいイブパーティーから家に帰ったので、きちんと書けなかった:)
Kunok

回答:


440

コードのチャンクは新しいコードを作成せず、それがすでにそこにあるかどうかを確認するだけです。

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

5
私の場合、このコードが新しいファイルを作成している理由がわかりません。
ofnowhere '19

サブフォルダーをチェックインする方法も?
Pratik Butani 2014

4
これは、静的メソッドFile.exists(String file)がないため、このようになります。そのため、「Exists」メソッドにアクセスするには、新しいFileオブジェクトをインスタンス化する必要があります。
Giova、2014年

3
OPは新しいファイルオブジェクトを作成したくないと思います。
AndroDev

1
@AndroDevいいえ-彼は新しいファイルを作成したくないので、答えはファイルへの新しいREFERENCEを作成します。
MarianPaździoch

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())
Jordi

8

「in your package folder」とは、ローカルアプリファイルを意味しますか?その場合、Context.fileList()メソッドを使用してそれらのリストを取得できます。ただ繰り返して、ファイルを探します。これは、Context.openFileOutput()使用して元のファイルを保存したことを前提としています。

サンプルコード(アクティビティ内):

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

5

methodsPathクラスでは、彼らがパスのインスタンス上で動作することを意味し、構文です。しかし、最終的に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

Kotlin拡張プロパティ

Fileオブジェクトを作成してもファイルは作成されません。これは単なるインターフェースです。

ファイルの操作を簡単にするために、.toFileUri には既存の関数があります

FileやUriに拡張プロパティを追加して、使用をさらに簡単にすることもできます。

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

次に、uri.existsまたはfile.existsを使用して確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.