I want to create a directory on \"/mnt/extsd/MyFolder\" this path. while calling mkdir() it returns false.I inserted the sdcard on my tablet, got the external path as \"/mnt/ext
Add permission in Manifest file
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
File sdDir = Environment.getExternalStorageDirectory();
final String PATH = Environment.getExternalStorageDirectory() + "/myfolder/";
if(!(new File(PATH)).exists())
new File(PATH).mkdirs();
include permission in manifest::
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Do you have declared permission in Manifest.xml file?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Also I suggest you to not going for HardCoded path of /mnt/extsd/
Instead of it just use Environment.getExternalStorageDirectory().getPath()
.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
I have two folders like extSdCard and sdcard in my samsung galaxy s3.
Use the below code to choose.
private String[] mFilePaths;
File storageDir = new File("/mnt/");
if(storageDir.isDirectory()){
File[] dirList = storageDir.listFiles();
for (int i = 0; i < dirList.length; i++)
{
mFilePaths[i] = dirList[i].getAbsolutePath();
System.out.println("...................................."+mFilePaths[i]);
}
}
File Dir;
if(android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))//check if sd card is mounted
{
Dir=new File(android.os.Environment.getExternalStorageDirectory(),"your folder name");
if(!Dir.exists())// if directory is not here
Dir.mkdirs() // make directory
}
Edit
To get the paths of internal and external storage. below code works on samsung galaxy s3.
String externalpath = new String();
String internalpath = new String();
public void getExternalMounts() {
Runtime runtime = Runtime.getRuntime();
try
{
Process proc = runtime.exec("mount");
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
String line;
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
if (line.contains("secure")) continue;
if (line.contains("asec")) continue;
if (line.contains("fat")) {//external card
String columns[] = line.split(" ");
if (columns != null && columns.length > 1) {
externalpath = externalpath.concat("*" + columns[1] + "n");
}
}
else if (line.contains("fuse")) {//internal storage
String columns[] = line.split(" ");
if (columns != null && columns.length > 1) {
internalpath = internalpath.concat(columns[1] + "n");
}
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("Path of sd card external............"+externalpath);
System.out.println("Path of internal memory............"+internalpath);
}
Now you can use the path os external storage to create a folder.
if(android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))//check if sd card is mounted
{
Dir=new File(externalpath,"your folder name");
if(!Dir.exists())// if directory is not here
Dir.mkdirs() // make directory
}