This occurs because Windows has a 260 character limit on the complete path of a file name. It's possible to trigger this issue when a computer synchronizes into a folder that has a very long file name.
For example, if "syncedfolder" is synchronized on two computers:
- Computer A: C:\syncplicity\syncedfolder
- Computer B: C:\syncplicity\some very long folder name thats very long\another very long sub folder\yet another subfolder\syncedfolder
And then, on Computer A, the following folders and file is created:
C:\syncplicity\syncedfolder\very long sub folder name\another sub folder name\yet another long sub folder name\and another long sub folder name\file with long name.doc
Syncplicity will get an error on Computer B when it tries to create the following folders and file:
C:\syncplicity\some very long folder name thats very long\another very long sub folder\yet another subfolder\syncedfolder\very long sub folder name\another sub folder name\yet another long sub folder name\and another long sub folder name\file with long name.doc
This is because the full path to the file on Computer B is longer then 260 characters, which is too long for Windows to handle. In this case, "file with long name.doc" will not show up on Computer B and there will be a "Filename cannot be downloaded because its name is too long or contains invalid characters" error in the tracelog.
There are two ways to work around this issue:
- Use shorter file and folder names in the syncronized folder
- Change the synchronized folder's location to a folder with a shorter path. (See Using the Windows Client for how to change the folder location) For example, if "syncedfolder" on Computer B is moved to C:\syncplicity\shorter path\syncedfolder, then "file with long name.doc" will be correctly synchronized.
For more information, see http://msdn.microsoft.com/enus/library/aa365247(v=vs.85).aspx#maxpath