Allowing a user to specify an arbitrary local folder;
Populating a struct with paths to each image file within (including subfolders);
So that I can use the struct later to make 'load image' calls etc;
And use the images in my game.
You can do that with NWjs, I do it in my program. However have no clue how NWjs plugin work with android. But when that is said, Working with NWjs to do something like this is NOT
designed to be easy. It is filled with bugs, functionalities that you would assume were compatible, but ain't. So the only way you can make it work, is if you create a *%@# load of workarounds. Like parsing path to files, folders etc. and if you are not sure how many sub folders there are, it will be even harder.
When that is said you write that the user might select 900 images for instant. Which will lead to the next problem, which is "Load image from url" if you plan on showing more than 1 image at the time in you app. You actually have to create the number of objects or frames in the object which you want to hold each image or it will not work, as it will overwrite your other images. So this gives you two problems.
1. Either you say that there can be a maximum of images in your application. And just hope that is enough.
2. Or you can let them only load one image at the time.
So you are left screwed to be honest. Because If you use option 1, you actually have to create X amount of empty frames in you application for no reason. So if you want the user to be able to load lets say 100 images and preview them in the application. You have to add 100 empty frames to the object holding the images. Which of course means that your application will read all 100 empty frames into memory for no reason, which will probably not be good for your applications performance.
And if you use option 2, you wont be able to do what you want.
But should you decide to give it ago anyway. System.Tokencount and System.Tokenat are very useful, when parsing paths. Besides that I don't even know where to start giving you advice, because the way it works is just to weird and bugged that, you pretty much have to make up the workarounds as you run into them. But of course its a good idea to make sure if NWjs even works with Android.