Android的; 检查文件是否存在而不创建新文件

MBH*_*MBH 212 file-io android file

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

File file = new File(filePath);
if(file.exists()) 
     return true;
Run Code Online (Sandbox Code Playgroud)

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

Mai*_*jer 414

你的代码块不会创建一个新的代码,它只会检查它是否已存在而没有其他内容.

File file = new File(filePath);
if(file.exists())      
//Do something
else
// Do something else.
Run Code Online (Sandbox Code Playgroud)

  • 不知道为什么在我的情况下这个代码正在创建一个新文件. (4认同)
  • 这就是因为没有静态方法:File.exists(String file),所以你必须实例化一个新的File对象来访问'Exists'方法. (4认同)
  • 我认为OP不想创建新的文件对象。 (2认同)

Vic*_*rte 29

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

File file = new File(filePath);
if(file.exists()) 
    //do something
Run Code Online (Sandbox Code Playgroud)


Jor*_*ens 13

它对我有用:

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

  • 如果您只有文件名而没有路径,这就是解决方案 (2认同)

tho*_*8wp 7

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

示例代码(在活动中):

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


Ana*_*edi 5

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 ");
 }
Run Code Online (Sandbox Code Playgroud)