I have been using BibDesk as a reference manager for a while now. I have mainly used it for organizing my database of references with the PDF file attached. Unfortunately BibDesk works perfectly with LyX or LATeX, but not so easily with Microsoft Word, and at least for me, it is more common to use Word to write papers than LyX or LATeX. For this reason I tried both Zotero and Mendeley to have a reference manager that could support the whole literature search, reading, cite lifecycle. My final choice was Mendeley (also because now I have all my references database and files on the iPad too). Importing the references database in Mendeley was pretty easy but…
… I had many PDF files linked (about 280) to the references in BibDesk, but unfortunately Mendeley was able to import only few of them (less than 40). After some investigation I have discovered that BibDesk encodes (base 64) pdf files link. These encoded links are not (currently) recognized and decoded by Mendeley. I have browsed the internet to look for some solutions and I have found two links on the Mendeley website mentioning the issue (http://feedback.mendeley.com/forums/4941-mendeley-feedback/suggestions/455825-import-pdfs-added-from-bibdesk, http://feedback.mendeley.com/forums/4941-mendeley-feedback/suggestions/80946-automatically-find-pdfs-link-them-to-imported-me). None of the solutions proposed in those web pages worked for me, so I wrote a php script to fix the issue and… it worked. I now have all my references and all my PDF file linked in Mendeley.
The source of the script is provided below. If none of the solutions mentioned in the previous webpages work for you too, you could try this script. Feel free to use and modify it. What you (for sure) need to modify is to change the string “Users/macbookpro/Documents” to suit the full path where all your pdf files are located.
<?php
// Usage:
// bash> php bibtek_decode_file_link.php bibtekfile.bib > decoded_bibtekfile.bib
// Check syntax - at least a filename must be given
if ($argc < 2)
{
echo "Syntax: " . $argv[0] . " filename [prefix]";
}
else
{
echo "Processing " . $argv[1] . "\n";
// Read file line by line
if ($fh = fopen($argv[1], 'r'))
{
while ($fl = fgets($fh))
{
if (strpos($fl, 'Bdsk-File'))
{
// String found
$poss = strpos($fl, '{');
$pose = strpos($fl, '}');
$entry = substr($fl, $poss + 1, $pose-$poss);
$final_char = substr($fl, $pose + 1);
// Decode entry
$decoded_entry = base64_decode($entry);
// Find file path
$posfs = strpos($decoded_entry, "Users/macbookpro/Documents");
$sub_entry = substr($decoded_entry, $posfs);
$pospdf = strpos($sub_entry, ".pdf");
$sub_entry = '/'. substr($sub_entry, 0, $pospdf + 4);
echo sprintf("\tFile = {%s}%s\n", $sub_entry, $final_char);
}
else
{
// String not found - keep dumping output
echo $fl;
}
}
}
else echo "Error opening " . $argv[1] . "\n";
}
?>

Mendeley has a nice iPad/iPhone App too. I was having problems with the iPad App. PDF files attached to references were not seen as true PDF files but as HTML links. Of course it was impossible to download the correct file. As suggested here I had to remove the app, install it again, and sync it with Mendeley. Now all the links work properly.