My (limited) experience has been that in order for the SD card to be recognized by the USB host system so that data can be transferred back and forth, the device contaning the SD must be in Disk Drive mode. This causs the host to "see" the device as an external drive and the SD card as the disk. Because it is "attached" to the host after the fact, it is assigned the next available drive letter -- this is usually done dynamically. During the time the devce is in Disk Drive mode the SD card is hidden from the Android operating system and is unavailable to any apps. At least that's howi it works on my Evo.
I assume from this that you cannot do both simultaneously. Logically this suggests that you will need to write/read to/from the SD card whie the device is in Charge Only mode (or some other mode) and then switch to Disk Drive to move the files to the host computer.
The only other option would be to set up the host as a server and have your app copy the file to the server. However, I haven't learned to do that yet in B4a. I'm still trying to get a handle on Intents