2013-04-26 135 views
169

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

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

此代码检查没有创建新文件吗?

+2

这似乎是正确的。 – 2013-04-26 13:41:21

+0

可能重复的[测试如果文件存在](http://stackoverflow.com/questions/2786655/test-if-file-exists) – piokuc 2013-04-26 13:42:20

+1

@Kunok我在查看你的编辑评论:*删除的话,如**坦克**,因为他们是...... *:P – 2016-01-01 10:28:13

回答

316

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

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

不知道为什么在我的情况下,这段代码正在创建一个新文件。 – ofnowhere 2014-02-19 20:54:59

+0

如何检查子文件夹? – 2014-04-26 12:55:44

+4

这就是这样,因为没有静态方法:File.exists(String file),所以你必须实例化一个新的File对象来访问'Exists'方法。 – Giova 2014-10-13 03:12:04

20

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

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

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

示例代码(在一个Activity):

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

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

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

它的工作对我来说:

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(); 
} 
相关问题