The following code is used to launch a file manager to allow the user to select a file:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
Error:Directory '/document/2071-13DB:Download' could not be created.
The following code is used to launch a file manager to allow the user to select a file
No, it is not. It is used to get a piece of content, from any activity that support that particular
If the user selects file foo.txt in folder Download, the returned file's path is
You are not getting a file. You are getting a
Uri to a piece of content. In particular, I strongly suspect that this
Uri has a
content scheme. In that case, the path is meaningless to you.
When the app tries to write a text file (foo_new.txt) to folder "/document/2071-13DB:Download", it gets the following exception
That is not a folder. From your standpoint, that is a random series of characters.
For example, the URL of this Web page is
https://stackoverflow.com/questions/39337012/why-is-the-parent-path-of-a-selected-file-not-usable. You can use an HTTP client to read the contents of that page. However, if you try using Java's
File object to write a new file to
/questions/39337012/ on your computer, you will find that this will not work, because you do not have a
/questions/39337012/ folder on your computer. Here, the URL points to content that is not on your computer's filesystem.
Similarly, you cannot perform string manipulations of a portion of a
Uri and come up with another
Uri that you can use. A
Uri does not have to point to a file on the filesystem.
I am trying to allow the user to select a folder for the app to save files.
Use a directory-chooser library, then.
Or, on Android 5.0+ devices, use
ACTION_OPEN_DOCUMENT_TREE, which is part of the Storage Access Framework. From there, use
DocumentFile to create new folders, create new content in those folders, etc., all using
Uri values without trying to decipher the pieces of the
Uri values (e.g.,