我想写入手机 SD 卡中的文件。我使用以下代码来执行此操作。
private CSVWriter _writer;
private File _directory;
public String _fileTestResult;
private String PATH_FILE_EXPORT = "/applications/foru/unittestframework/";
public ExportData(){
_writer=null;
_directory = new File(Environment.getExternalStorageDirectory () +PATH_FILE_EXPORT);
if(!_directory.exists())
_directory.mkdirs();
}
public void exportResult(String testcaseNum,String testcase,String status){
try {
if(_directory.exists()){
//do something
}
但是 mkdirs() 不工作。所以我无法在 if 条件下执行以下代码。请帮助我。
注意:我已经在 list 文件中给出了权限。
编辑: 我正在使用这个文件写入选项来存储使用 robotium 的自动化测试的结果。我已经创建了一个普通项目并尝试在 sdcard 中创建目录。但是当我在这个测试项目中使用相同的代码时它不起作用。为什么这样?单元测试框架不支持这个吗?
最佳答案
您是否在 list 中添加了正确的权限?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
编辑:好的,我刚刚阅读了您的注释以获得许可。
如果对你有帮助,这是我的 sdcard 缓存代码:
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){
String evtDir = "";
if(evt > 0){
evtDir = File.separator + evt;
}
cacheDir = new File(
android.os.Environment.getExternalStorageDirectory()
+ File.separator
+ "Android"
+ File.separator
+ "data"
+ File.separator
+ Application.getApplicationPackageName()
+ File.separator + "cache"
+ evtDir);
}else
cacheDir=context.getCacheDir();
if(!cacheDir.exists())
cacheDir.mkdirs();
}
关于android - file.mkdirs() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11558139/