Hej,
I have some data shipped out with the app which shall be copied on the external storage. It’s nested in a couple of subfolders and I’d like to copy the whole structure.
I’m having a hard time getting a File object for any ressource in /assets. But I think I’m depended on that ’cause I need something like File.isDirectory() to determine if I have to start copying or dive deeper into the system.
My first approach was using Assets Manager but it seems that class is not providing the information I need. The most promising why was to obtain an AssetFileDescriptorand go down to a [FileDescriptor][2]. However non of them seems to have a isDirectory-method.
So my other approach is straight forward: Creating a File Object and be happy. However it seems like I’m running in this problem of lacking a proper path to instance the file object. I’m aware of file://android_asset but it doesn’t seem to work for the fileconstructor.
My last idea would to utilise the InputStream (which I need for copying anyway) and somehow filter the byte for a significant bit which indicates this resource to be a directory. That’s a pretty hacky solution and probably right in the hell of ineffectiveness but I don’t see another way to get around that.
list() on AssetManager will probably give a null / zero length array / IOException if you try to get a list on a file, but a valid response on a directory.
But otherwise it should be file:///android_asset (with 3 /)