I see that as of API Level 8, you can request a handle to special directories with Environment.getExternalStoragePublicDirectory. This takes a type such as DIRECTORY_MUSIC, DIRECTORY_PICTURES, etc.
I'm looking for an equivalent directory for other media types such as documents (Word docs, PDFs, etc.). My HTC Desire has a "/sdcard/My Documents/" folder which looks like exactly what I want, but it has no DIRECTORY_ specifier for use with the above method. Is this a standard Android directory which I can rely on?
If I can't use getExternalStoragePublicDirectory, I have to use getExternalStorageDirectory instead which just points me to the root of the SD card. I can explicitly check for the presence of "My Documents" under the root and use it if it's there.
This is what I have:
// default document save location
File defaultSaveDir = Environment.getExternalStorageDirectory();
File myDocs = new File(defaultSaveDir, "My Documents");
if (myDocs.exists() && myDocs.isDirectory())
defaultSaveDir = myDocs;
Is there a better way?