检查android sd卡上是不是存在目录
Posted
技术标签:
【中文标题】检查android sd卡上是不是存在目录【英文标题】:Check if directory exist on android's sdcard检查android sd卡上是否存在目录 【发布时间】:2011-02-07 04:47:25 【问题描述】:在android中如何检查sdcard上是否存在目录?
【问题讨论】:
【参考方案1】:常规Java文件IO:
File f = new File(Environment.getExternalStorageDirectory() + "/somedir");
if(f.isDirectory())
....
可能还想检查f.exists()
,因为如果它存在,并且isDirectory()
返回false,你就会遇到问题。还有isReadable()
...
查看here 了解更多可能有用的方法。
【讨论】:
我的错误只是我的路径中缺少目录,但谢谢。我开始怀疑android的文件系统是否不支持这样的普通方法:-P 请注意,getExternalStorageDirectory() 可能实际上并不指向物理 sd_card,它可能指向内部存储。 developer.android.com/reference/android/os/… Chrispix,您的评论具有误导性。 getExternalStorageDirectory() 将指向在所有应用程序之间共享数据的存储。这可能是 SD 卡,对于没有 SD 卡的设备,它指向用作外部存储的保留存储区域。内部存储是存储私有数据(对于应用程序 - 通常是数据/数据)的位置。 这对我不起作用,因为 getExternalStorageDirectory() 它返回内部存储。 @muhammad:它可能存在并且只是一个文件,而不是一个目录。【参考方案2】:File dir = new File(Environment.getExternalStorageDirectory() + "/mydirectory");
if(dir.exists() && dir.isDirectory())
// do something here
【讨论】:
是否有必要同时检查exists()
和isDirectory()
?我的意思是,如果我们使用其中任何一种呢?【参考方案3】:
我在检查文件/目录时犯了错误。事实上,您只需致电isFile()
或isDirectory()
。这是docs
如果您曾经拨打过isFile()
或isDirectory()
,则无需拨打exists()
。
【讨论】:
注意:以上目录 - download.oracle.com/javase/1.4.2/docs/api/java/io/File.html 不再存在。【参考方案4】:以下代码也适用于 java 文件:
// Create file upload directory if it doesn't exist
if (!sdcarddir.exists())
sdcarddir.mkdir();
【讨论】:
【参考方案5】:一般用这个函数来检查一个Dir是否存在:
public boolean dir_exists(String dir_path)
boolean ret = false;
File dir = new File(dir_path);
if(dir.exists() && dir.isDirectory())
ret = true;
return ret;
使用如下函数:
String dir_path = Environment.getExternalStorageDirectory() + "//mydirectory//";
if (!dir_exists(dir_path))
File directory = new File(dir_path);
directory.mkdirs();
if (dir_exists(dir_path))
// 'Dir exists'
else
// Display Errormessage 'Dir could not creat!!'
【讨论】:
【参考方案6】:是的,尝试了很多,下面的代码对我有帮助:)
File folder = new File(Environment.getExternalStorageDirectory() + File.separator + "ur directory name");
if (!folder.exists())
Log.e("Not Found Dir", "Not Found Dir ");
else
Log.e("Found Dir", "Found Dir " );
Toast.makeText(getApplicationContext(),"Directory is already exist" ,Toast.LENGTH_SHORT).show();
【讨论】:
以上是关于检查android sd卡上是不是存在目录的主要内容,如果未能解决你的问题,请参考以下文章