为什么不创建我的根文件夹?

时间:2011-08-17 17:41:19

标签: java android motorola

我尝试在主根目录中创建外部存储公共目录,并编写以下代码行。代码编译正确,共享首选项正确更新,但根文件夹未在设备中创建。

我使用Atrix(它有内部存储而没有SD卡)。我也尝试下载用于Gingerbread的Atrix Addon,我尝试在模拟器中编译它并且程序崩溃了。 (但它在真实设备中运行得非常好。)

  1. 为什么模拟器崩溃(我在模拟器中有1 GB的SD卡)? (它与空指针异常崩溃)

  2. 为什么文件夹不是在真实设备中创建的?

  3. 设备配置:

    MinSDK - 8 SDK版本 - 10

    代码段

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ixfer_main);
    
            File rootDirectory = new File(getExternalFilesDir(null),"/AppRoot");
            rootDirectory.mkdirs(); // also tried using mkdir() - still no good
    

    编辑:这是权限问题。修复并立即工作。

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    

2 个答案:

答案 0 :(得分:1)

完成上一个回答:

在对其进行任何操作之前,请不要忘记检查外部存储状态。

  if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
  /* do job on external storage */
  }

答案 1 :(得分:0)

要访问文件系统,您必须在android manifest xml文件中添加适当的权限。如果没有适当的权限,您的文件对象将不会被创建,您将获得一个空引用。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.app.myapp" >
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>