RWAP wrote:The better solution would be to ensure that all emulators and QLs supported the q-emulator method of saving direct to (and of course loading / executing from) DOS formatted devices so that those new to the QL scene (or returning after many years) would not even have this query!
There's a reason why I don't do this. When you do a "dir" command the QemuLator method must open every file in a directory to check if there is a file header. That's nice if you have directories with 10 files in it but doesn't scale for directories with 3000 files. And yes, that is a valid usage scenario for me.
Another method is to have a database in a separate file in the directory that holds the header information. This is the method MacOS X uses or even Windows for saving the preview thumbnails for pictures. Better, but has it's own drawbacks like that the header will get lost when you copy the file from within Windows. Also the additional file can be annoying.
3rd method is used in the FLP driver, add the data space to the filename (e.g. xyz.EX2). The added part is hidden from SMSQ/E. Rather hackish but ommits the problems outlined above. Creates problem that two files could potentially have the same name on the SMSQ/E side.
4th method is saving the data in alternative NTFS data streams. This is a little known feature in the NTFS file system and most closely resembles the way the QL headers works, but it shares some problems with the QemuLator method and when I first thought about it 10 years or so ago many machines were still FAT based so it wouldn't have worked for many users. Also probably doesn't work for ZIP files.
5th method is used by SMSQmulator and uses two different devices. One device behaves like QPC, one more like QemuLator. You must always remember which device you used with which directory. I don't quite like this.
So this is a rather complicated problem and I have spend many hours thinking about it. The QemuLator way is pretty pragmatic but I mostly don't like it from a performance point of view and because it alters the file contents. Unfortunately there is no "good" method, which is why so far I opted for "no" method. Sorry about that.