我不明白为什么我无法看到我在Eclipse的DDMS中创建的文件夹。 在我的活动开始时,我称之为:
public void createFolderSignature(){
File signaturePointFolder = new File(Environment.getExternalStorageDirectory()+ File.separator + "tour_"+this.point.getId_tour() + File.separator + "point_"+this.point.getId());
Log.i("PATH : " , signaturePointFolder.getPath());
if (!signaturePointFolder.exists()){
Log.i("signaturePointFolder","CREATED");
signaturePointFolder.mkdir();
}else{
Log.i("signaturePointFolder","ALREADY CREATED");
}
}
游览和点是对象。 所以我根据id和tour创建了一个特殊的文件夹。 就像你看到的,我宠物登录,看看文件夹是否创建良好。 所以这是我的logcat:
06-12 09:31:51.268: I/PATH :(24819): /mnt/sdcard/tour_1/point_1
06-12 09:31:51.268: I/signaturePointFolder(24819): CREATED
06-12 09:31:51.412: D/dalvikvm(24819): GC_CONCURRENT freed 1101K, 10% free 12980K/14343K, paused 18ms+12ms, total 67ms
06-12 09:31:51.716: D/dalvikvm(24819): GC_CONCURRENT freed 1706K, 13% free 13337K/15175K, paused 11ms+15ms, total 66ms
因此,如果看到我的日志" CREATED",我通常会收集该文件夹,但是没有,我在AVD的Eclipse文件资源管理器中看不到任何内容。 每次我到达活动时,我都有相同的日志。 为什么?我的代码有问题吗? 我希望你能帮助我=)
编辑1: 我忘记说我在清单中也接受了WRITE_EXTERNAL_STORAGE和READ_的许可。
答案 0 :(得分:1)
将signaturePointFolder.mkdir()
更改为signaturePointFolder.mkdirs()
这是因为你创建了一个层次结构的文件夹。 mkdir()
仅在有单个父级时才有效。因此,您还需要mkdirs()来创建剩余的文件夹。
还要确保您在清单中提供写入权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
答案 1 :(得分:1)
您始终获得Log.i("signaturePointFolder","CREATED");
,因为文件路径始终不存在
所以,试试这个
public void createFolderSignature(){
File signaturePointFolder = new File(Environment.getExternalStorageDirectory()+ File.separator + "tour_"+this.point.getId_tour() + File.separator + "point_"+this.point.getId());
Log.i("PATH : " , signaturePointFolder.getPath());
if (!signaturePointFolder.exists()){
Log.i("signaturePointFolder","CREATED");
signaturePointFolder.mkdirs();
}else{
Log.i("signaturePointFolder","ALREADY CREATED");
}
}
并且忘记在manifest.xml
文件中添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>