How to create a directory in External SD in android application

前端 未结 4 762
暖寄归人
暖寄归人 2021-01-25 09:39

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

相关标签:
4条回答
  • 2021-01-25 09:47

    Add permission in Manifest file

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
      File sdDir = Environment.getExternalStorageDirectory();
    
    0 讨论(0)
  • 2021-01-25 09:56
    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" />
    
    0 讨论(0)
  • 2021-01-25 10:06

    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().

    0 讨论(0)
  • 2021-01-25 10:13
     <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
    }
    
    0 讨论(0)
提交回复
热议问题