Keep in mind that using DirRootExternal gives special permissions to the drive so that you can access it. I use a lot of static paths and in that case to get the permission I just call the DirRootExternal and assign it to a Dummy variable.
Dummy = File.DirRootExternal
You could save the file from above with:
File.WriteList(File.DirRootExternal, "/MyDir/Names/MyFile.txt")
Depending on the device, because some have different paths, you could also do:
File.WriteList("/mnt/sdcard/MyDir/Names", "MyFile.txt")