The closest I've been able to reproduce is if you choose the same directory the file is in on the SD card. That will cause the file to be truncated. I will be committing a fix to prevent this soon. But to other directories and drives it works correctly for me.
The generic driver code is what is doing the reading and it only opens the file in read only mode. It then copies the file from the device to the destination opened as write only. Since the file is opened in read only mode Calibre cannot write to the file at all. If it were to try to write to the file Python would not allow it and throw an exception. Unless they are the same location in which case it currently truncates.
Can you try using save to disk with a book on the Cybooks main memory. This will help to deduce if you have a bad memory card.
|