248

我想检查我的包文件夹中是否存在文件,但我不想创建一个新文件。

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

此代码是否在不创建新文件的情况下进行检查?

4

8 回答 8

474

您的代码块不会创建新代码,它只会检查它是否已经存在,而没有其他内容。

File file = new File(filePath);
if(file.exists())      
//Do something
else
// Do something else.
于 2013-04-26T13:52:26.377 回答
34

当您使用此代码时,您不会创建一个新文件,它只是为该文件创建一个对象引用并测试它是否存在。

File file = new File(filePath);
if(file.exists()) 
    //do something
于 2013-04-26T13:57:56.540 回答
27

它对我有用:

File file = new File(getApplicationContext().getFilesDir(),"whatever.txt");
    if(file.exists()){
       //Do something
    }
    else{
       //Nothing
     }
于 2017-12-29T11:20:04.963 回答
9

当您说“在您的包文件夹中”时,您的意思是您的本地应用程序文件吗?如果是这样,您可以使用Context.fileList()方法获取它们的列表。只需遍历并查找您的文件。假设您使用Context.openFileOutput()保存了原始文件。

示例代码(在活动中):

public void onCreate(...) {
    super.onCreate(...);
    String[] files = fileList();
    for (String file : files) {
        if (file.equals(myFileName)) {
            //file exits
        }
    }
}
于 2013-04-26T13:58:44.470 回答
5

Path 类中的methods是语法的,这意味着它们对 Path 实例进行操作。但最终您必须访问file系统以验证特定路径是否存在

 File file = new File("FileName");
 if(file.exists()){
 System.out.println("file is already there");
 }else{
 System.out.println("Not find file ");
 }
于 2016-01-01T09:49:41.670 回答
2
public boolean FileExists(String fname) {
        File file = getBaseContext().getFileStreamPath(fname);
        return file.exists();
}
于 2018-02-13T15:31:39.220 回答
1
if(new File("/sdcard/your_filename.txt").exists())){
              // Your code goes here...
}
于 2020-11-20T11:25:25.470 回答
0

Kotlin 扩展属性

创建 File 对象时不会创建文件,它只是一个接口。

为了更轻松地处理文件,.toFileUri 上有一个现有功能

您还可以在 File 和/或 Uri 上添加扩展属性,以进一步简化使用。

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

然后只需使用uri.existsfile.exists检查。

于 2020-01-16T23:47:08.763 回答