2013-04-26 35 views
169

Tôi muốn kiểm tra xem tệp có tồn tại trong thư mục gói của tôi hay không, nhưng tôi không muốn tạo tệp mới.Android; Kiểm tra xem tệp có tồn tại mà không cần tạo tệp mới

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

Mã này có kiểm tra mà không tạo tệp mới không?

+2

Có vẻ như chính xác. –

+0

có thể trùng lặp của [Kiểm tra nếu tệp tồn tại] (http://stackoverflow.com/questions/2786655/test-if-file-exists) – piokuc

+1

@Kunok Tôi đang kiểm tra nhận xét chỉnh sửa của bạn: * các từ bị xóa, chẳng hạn như ** tanks ** vì chúng là ... *: P –

Trả lời

316

Đoạn mã của bạn không tạo mã mới, nó chỉ kiểm tra nếu mã của nó đã có và không có gì khác.

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

Không biết tại sao trong trường hợp của tôi, mã này đang tạo một tệp mới . – ofnowhere

+0

Làm thế nào để kiểm tra trong thư mục con cũng? –

+4

Điều này giống như vậy vì không có phương thức tĩnh: File.exists (tệp String), vì vậy bạn phải instanciate một đối tượng File mới để truy cập phương thức 'Exists'. – Giova

20

Khi bạn sử dụng mã này, bạn không tạo tệp mới, nó chỉ tạo tham chiếu đối tượng cho tệp đó và kiểm tra xem nó có tồn tại hay không.

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

Khi bạn nói "trong thư mục gói", bạn có nghĩa là tệp ứng dụng cục bộ của mình không? Nếu vậy, bạn có thể nhận danh sách của họ bằng cách sử dụng phương thức Context.fileList(). Chỉ cần duyệt qua và tìm tệp của bạn. Giả sử bạn đã lưu tệp gốc với Context.openFileOutput().

Mẫu mã (trong một hoạt động):

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

Các methods trong lớp Path là cú pháp, nghĩa là chúng hoạt động trên dụ Path. Nhưng cuối cùng bạn phải truy cập vào hệ thống file để xác minh rằng một con đường đặc biệt tồn tại

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

Nó làm việc cho tôi:

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(); 
} 
Các vấn đề liên quan