Las reglas de lo que es un nombre de archivo válido para Windows son extremadamente complejas, véase aquí . Depende del sistema de archivos y, por ejemplo, también de dónde esté montada la carpeta de Dropbox en Windows (ya que el nombre completo de la ruta en Windows no puede superar un determinado número de caracteres). Y como OSX no sabe dónde se montará Dropbox en Windows, no puede garantizar que un archivo concreto funcione.
Ahora, hay una pregunta más fácil sobre si podemos encontrar todos los archivos que contienen un carácter que es ilegal en los nombres de archivo de Windows, a saber <>:"/\|?*
(según el mismo documento). Esto es bastante fácil utilizando la línea de comandos:
find . -name '*[<>:"/\\|?*]*'
Ejecuta esto en el directorio de Dropbox (o sustituye el .
con el directorio de Dropbox), y debería darte una lista. La razón es que en un nombre de archivo []
se utiliza para significar: uno de estos personajes. Así que estoy pidiendo que se liste cualquier archivo bajo este directorio que contenga uno de estos caracteres. Dentro de los paréntesis, sólo necesito escapar la barra invertida.
(ahora tenga en cuenta que este comando también teóricamente atrapará muchos nombres de archivos que no son válidos en OSX, por lo que nunca pueden estar allí en primer lugar, pero eso no importa).