2016-02-29 103 views
0

我正在制作Android应用程序,因为我需要在存储磁盘卡上创建文件夹。 我的主要活动分类: 我已经添加了三个按钮,每次点击都是为了写一个文件夹。 我的程序正在执行,但Toast消息是“目录未创建”。 我检查了我的存储磁盘卡,并在那里,我也在清单中添加了用户权限。在SD卡上制作文件夹android

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final boolean isSDWritable = SDcard.isExternalStorageWritable(); 
    buttonDownlaod = (Button) findViewById(R.id.activity_main_directoryDownload); 
    buttonPictures = (Button) findViewById(R.id.activity_main_directoryPictures); 
    buttonMovies = (Button) findViewById(R.id.activity_main_directoryMovies); 
    buttonDownlaod.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (isSDWritable) { 
       getStorageDir(Environment.DIRECTORY_DOWNLOADS, "MyDownlaods"); 
      } 
     } 
    }); 
    buttonMovies.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (isSDWritable) { 
       getStorageDir(Environment.DIRECTORY_MOVIES, "MyMovies"); 
      } 
     } 
    }); 
    buttonPictures.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (isSDWritable) { 
       getStorageDir(Environment.DIRECTORY_PICTURES, "MyPictures"); 
      } 
     } 
    }); 
} 

public File getStorageDir(String inBuiltDir, String folderName) { 
    String inBuiltdir = Environment.getExternalStorageDirectory().getAbsolutePath(); 
    File file = new File(inBuiltDir, folderName); 
    if (!file.mkdirs()) { 
     Toast.makeText(this, "Directory is not created", Toast.LENGTH_SHORT).show(); 
    } else { 
     Toast.makeText(this, "Folder Name" + folderName + "Created", Toast.LENGTH_SHORT).show(); 
    } 
    return file; 
} 

} // Update code formatting 

谁能帮助那什么是错在这是为什么目录没有被创建的代码。

+0

你必须写在清单文件中声明外部存储权限? – Bhargav

+0

是的,我有权限。我在清单文件中声明.. – Heisenberg

+0

代码现在工作正常。刚刚实现了getExternalFilesDir()而不是getExternalStorageDirectory()。 – Heisenberg

回答

0

我认为你不能在这些porticular目录中创建文件夹。尝试其他目录。

0

试试这个

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/"+folderName+"/"); 
file.mkdirs(); 
+0

取代你的代码,没有变化。消息仍然是“未创建目录” – Heisenberg

0

假设我要到SD卡上创建示例文件夹

File recordingDirectory = new File("/sdcard/sample/"); 
if (!recordingDirectory.exists()) { 
    recordingDirectory.mkdirs(); 
} 
相关问题