Java 如何检查是否有任何文件丢失
我使用以下代码检查SD卡中的文件夹中是否存在文件:Java 如何检查是否有任何文件丢失,java,android,toast,Java,Android,Toast,我使用以下代码检查SD卡中的文件夹中是否存在文件: //Check if database exists File fia = new File(Environment.getExternalStorageDirectory()+"/my_folder/db/my_file_1"); if(fia.exists()) { //do something }
//Check if database exists
File fia = new File(Environment.getExternalStorageDirectory()+"/my_folder/db/my_file_1");
if(fia.exists())
{
//do something
}
else
{
Toast.makeText(getApplicationContext(), "Database is not available. Please install it.", Toast.LENGTH_LONG).show();
}
这段代码运行良好
现在我有5个已知文件存储在sdcard/my_folder/
的不同子文件夹中,如下所示:
1. sdcard/my_folder/db/my_file_1
2. sdcard/my_folder/db/my_file_2
3. sdcard/my_folder/abc/my_file_3
4. sdcard/my_folder/abc/my_file_3
5. sdcard/my_folder/xyz/my_file_5
问题是我想检查是否所有文件都存在,然后做些什么。如果上述任何文件不可用或丢失,则显示Toast消息
如果任何文件不存在,我不知道如何只显示一次Toast消息(如果文件不可用,则手动执行此操作将显示Toast消息,这不是我的愿望)
你能帮点忙吗?非常感谢。将文件名放入字符串数组,然后在循环中检查它,如下所示
ArrayList<String> arrFiles= new ArrayList<String>();
arrFiles.add(sdcard/my_folder/db/my_file_1 );
arrFiles.add(sdcard/my_folder/db/my_file_2 );
arrFiles.add(sdcard/my_folder/db/my_file_3 );
arrFiles.add(sdcard/my_folder/db/my_file_4 );
Boolean isOk=true;
for(String s : arrFiles){
File fia = new File(Environment.getExternalStorageDirectory()+s);
if(fia.exists())
{
// it is ok
}
else
{
isOk=false;
}
}
ArrayList arrFiles=new ArrayList();
arrFiles.add(sdcard/my_folder/db/my_file_1);
arrFiles.add(sdcard/my_folder/db/my_file_2);
arrFiles.add(sdcard/my_folder/db/my_file_3);
arrFiles.add(sdcard/my_folder/db/my_file_4);
布尔值isOk=true;
用于(字符串s:ARR文件){
File fia=新文件(Environment.getExternalStorageDirectory()+s);
如果(fia.exists())
{
//没关系
}
其他的
{
isOk=假;
}
}
那么isok=正确,这是正常的 将文件名放入字符串数组,然后在循环中检查它,如下所示
ArrayList<String> arrFiles= new ArrayList<String>();
arrFiles.add(sdcard/my_folder/db/my_file_1 );
arrFiles.add(sdcard/my_folder/db/my_file_2 );
arrFiles.add(sdcard/my_folder/db/my_file_3 );
arrFiles.add(sdcard/my_folder/db/my_file_4 );
Boolean isOk=true;
for(String s : arrFiles){
File fia = new File(Environment.getExternalStorageDirectory()+s);
if(fia.exists())
{
// it is ok
}
else
{
isOk=false;
}
}
File fia = new File(Environment.getExternalStorageDirectory()+"/my_folder/db/my_file_1");
File fia2 = new File(Environment.getExternalStorageDirectory()+"/my_folder/db/my_file_2");
File fia3 = new File(Environment.getExternalStorageDirectory()+"/my_folder/abc/my_file_3");
File fia4 = new File(Environment.getExternalStorageDirectory()+"/my_folder/abc/my_file_3");
File fia5 = new File(Environment.getExternalStorageDirectory()+"/my_folder/xyz/my_file_5");
if(fia.exists() && fia2.exists() && fia3.exists() && fia4.exists() && fia5.exists())
{
//do something
} else {
Toast.makeText(getApplicationContext(), "Database is not available. Please install it.", Toast.LENGTH_LONG).show();
}
ArrayList arrFiles=new ArrayList();
arrFiles.add(sdcard/my_folder/db/my_file_1);
arrFiles.add(sdcard/my_folder/db/my_file_2);
arrFiles.add(sdcard/my_folder/db/my_file_3);
arrFiles.add(sdcard/my_folder/db/my_file_4);
布尔值isOk=true;
用于(字符串s:ARR文件){
File fia=新文件(Environment.getExternalStorageDirectory()+s);
如果(fia.exists())
{
//没关系
}
其他的
{
isOk=假;
}
}
那么isok=正确,这是正常的 只需添加方法来检查多个路径
File fia = new File(Environment.getExternalStorageDirectory()+"/my_folder/db/my_file_1");
File fia2 = new File(Environment.getExternalStorageDirectory()+"/my_folder/db/my_file_2");
File fia3 = new File(Environment.getExternalStorageDirectory()+"/my_folder/abc/my_file_3");
File fia4 = new File(Environment.getExternalStorageDirectory()+"/my_folder/abc/my_file_3");
File fia5 = new File(Environment.getExternalStorageDirectory()+"/my_folder/xyz/my_file_5");
if(fia.exists() && fia2.exists() && fia3.exists() && fia4.exists() && fia5.exists())
{
//do something
} else {
Toast.makeText(getApplicationContext(), "Database is not available. Please install it.", Toast.LENGTH_LONG).show();
}
private boolean checkFileExists(String path) {
File file = new File(path);
return file.exists();
}
private boolean checkAllFilesExist(String[] ... paths) {
if (paths != null && paths.length > 0) {
for (String path : paths) {
if (!checkFileExists(path)) {
return false;
}
}
return true;
} else {
return false;
}
}
if (!checkAllFilesExist("/path1", "/path2")) {
// some of them missed
}
只需添加方法来检查多个路径
private boolean checkFileExists(String path) {
File file = new File(path);
return file.exists();
}
private boolean checkAllFilesExist(String[] ... paths) {
if (paths != null && paths.length > 0) {
for (String path : paths) {
if (!checkFileExists(path)) {
return false;
}
}
return true;
} else {
return false;
}
}
if (!checkAllFilesExist("/path1", "/path2")) {
// some of them missed
}