FBReader 2.7: books versus files

In versions below 2.7 FBReader used file path as the unique book id. This means every time you open a file from the same location you open the same book, even if the file was changed. On the other hand, if you move or copy the file to another location and open it, FBReader treats it as a different book.

In version 2.7 this behaviour has been changed. FBReader calculates a hash – unique id based on the file content. FBReader treats all files with the same hash as the same book. This means you can move your file to another folder, or rename the file. All the information (book title, current position, bookmarks, custom shelves, etc.) will be kept as it is not bounded to file path, just to the book.

Book presented by two files  Notification  Select option

If a book's file has been changed (this means that the file in the same location has a new hash) FBReader cannot automatically decide what to do. A user notification will be shown. Firstly FBReader looks for existing book by the new hash. If the book is found, FBReader silently decides that the file now presents it. You can choose to:

  1. Create a new book from the file
  2. Link the file to the existing book
  3. Link to the existing book and reload metainfo from the file FBReader compares saved metainfo with the file data and shows this item if difference is found

From technical point of view when you select (2) or (3), FBReader associates one more hash to the book. All the files with this new hash will be treated as the same book, and all the files with the old hash will be treated as the same book too.