You can try this example. It shows on how to access the app specific Folders to which you have access without a special permission. Even on Targetsdk 29.
The files are not at the root of the sdcard though ;-)
And you should follow the suggestion not to set it to 29 for now.
But if you want to test it out of curiosity. Here you are:
I´ve added a constants Object to the Storage library (It is the 1st Library i ever published btw).
@ShortName("StorageConstants")
public static final class StorageConstants {
public static final String DIRECTORY_ALARMS = Environment.DIRECTORY_ALARMS;
public static final String DIRECTORY_DCIM = Environment.DIRECTORY_DCIM;
public static final String DIRECTORY_DOCUMENTS = Environment.DIRECTORY_DOCUMENTS;
public static final String DIRECTORY_DOWNLOADS = Environment.DIRECTORY_DOWNLOADS;
public static final String DIRECTORY_MOVIES = Environment.DIRECTORY_MOVIES;
public static final String DIRECTORY_MUSIC = Environment.DIRECTORY_MUSIC;
public static final String DIRECTORY_NOTIFICATIONS = Environment.DIRECTORY_NOTIFICATIONS;
public static final String DIRECTORY_PICTURES = Environment.DIRECTORY_PICTURES;
public static final String DIRECTORY_PODCASTS = Environment.DIRECTORY_PODCASTS;
public static final String DIRECTORY_RINGTONES = Environment.DIRECTORY_RINGTONES;
}
In the example i get the DIRECTORY_PICTURES folder and here i do create a Album named MySpecialAlbum and then i copy a file from the asssets to this folder.
At the last action i do a ListFiles on this Folder.
Dim myalbum As String = storage.getAppSpecificAlbumStorageDir(stc.DIRECTORY_PICTURES,"MySpecialAlbum")
Log("MySpecialAlbum path="&myalbum)
File.Copy(File.DirAssets,"donmanfred.png",myalbum,"donmanfred.png")
For Each f As String In File.ListFiles(myalbum)
Log(">"&f)
Next