I want to create a new directory inside the SD card programmatically and I want to delete that directory also. How can I do this?
What to Know. Go to My Files > Internal Storage > folder > Menu > Edit > pick files > Move > SD Card > Create Folder > Done.
Use This: DocumentFile tempDir = DocumentFile. fromSingleUri(context,targetDirectoryUri); DocumentFile newDocumentFile = tempDir. createFile(type,name);
You can only create a folder on a filesystem or parent folder where you have write permission. You need to look at the external storage API, or if you prefer (but with more limitations, particularly on accessing the data from a connected PC), the internal storage one.
To create a directory you can use the following code:
File dir = new File("path/to/your/directory"); try{ if(dir.mkdir()) { System.out.println("Directory created"); } else { System.out.println("Directory is not created"); } }catch(Exception e){ e.printStackTrace(); }
To delete an empty directory, you can use this code:
boolean success = (new File("your/directory/name")).delete(); if (!success) { System.out.println("Deletion failed!"); }
To delete a non-empty directory, you can use this code:
public static boolean deleteDir(File dir) { if (dir.isDirectory()) { String[] children = dir.list(); for (int i=0; i<children.length; i++) { boolean success = deleteDir(new File(dir, children[i])); if (!success) { return false; } } } return dir.delete(); }
Maybe you also need this permission:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
This answer is also a good resource:
How to create directory automatically on SD card
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With