Hi, I’ve just moved over to a new user account on my Mac.
Since the project bookmarks for external files are stored as absolute links, they all now need updating.
I can right-click on a broken project bookmark link and choose ‘edit bookmark’ to alter the link manually. I do this a lot - simply pasting in the relevant part of the link that has changed.
But I thought, what might be a useful feature is if there was a ‘browse’ button at the bottom of this popup box which allowed me to re-find the desired file manually.
I do find that I periodically change the names of folders and have to edit the bookmarks. Having the option to browse for files would save me a lot of time spent deleting and then re-adding bookmarks.
Many thanks for a great piece of software.
All the best,
Thanks, that’s not a bad idea, but it’s not without some issues. Internally it is no difference between a file link and any other valid URI, on or off-system. They are all simply URLs stored with a title and no other metadata. So you might say the button only appears when creating the popup with a “file://” prefix in the URL field—but then what if someone accidentally mangles their link (maybe they drag the file from Finder into the field without the “file://” part, which Finder unfortunately does not add on drop)? It’s a bit fragile—and all for something that I don’t think is any more efficient than using Finder in the first place (but maybe that’s just me, I never understood built-in file browsers that serve the sole purpose of importing a path address into the software).
That aside, for your specific scenario, all piecemeal methods are less efficient than bulk correction. For something like this, there are two alternatives I can think of that negate having to do hours of modification to your projects:
- Fix the XML file itself that stores this information. This is all found in the master .scrivx file at the top of the project package, and it is fairly easy to construct a search and replace that would fix everything like this:
<Bookmark Destination="file:///Users/olduser/folder/to/fixme.scriv">Bookmark Title</Bookmark>
We can very safely presume that anything with this text:
Should become this:
Obviously: as with all manual tweaks to the project’s internal files, use File ▸ Back Up ▸ Back Up Now or … ▸ Back Up To… prior to doing this!
- Use symbolic links to create a proxy address to your new user folder. Obviously this only works if the old user folder is renamed or no longer present, as you will need to have a symbolic link mimicing a user folder in every way. The advantage to this approach is very strong however—it fixes everything in your data pool, not just Scrivener. It may not be a common problem, but for myself I have links all of the place, including symbolic links within the user folder that were sometimes created as absolute links including the user name. If I have to change my user name, I’d be fixing broken stuff for months without a trick like this.
Thanks for the XML tip - I’ll have a go at that.
All the best,
Thanks for the information it has been very helpful