Nuestro equipo de especialistas luego de días de trabajo y recopilación de de datos, encontramos los datos necesarios, deseamos que te sea de gran utilidad para tu trabajo.
Solución:
No puede usar los siguientes caracteres en el nombre del archivo/carpeta:
Tilde (~)
Number sign (#)
Percent (%)
Ampersand (&)
Asterisk (*)
Braces ( )
Backslash (\)
Colon (:)
Angle brackets (< >)
Question mark (?)
Slash (/)
Plus sign (+)
Pipe (|)
Quotation mark (")
También hay restricciones sobre la posición de un carácter en un archivo/nombre de carpeta:
- No puede utilizar el carácter de punto de forma consecutiva en medio de un nombre de archivo/carpeta.
- No puede utilizar el carácter de punto al final de un nombre de archivo/carpeta.
- No puede iniciar un nombre de archivo/carpeta con un carácter de punto.
- Si utiliza un carácter de subrayado (_) al comienzo de un nombre de archivo/carpeta, el archivo/carpeta será un archivo/carpeta oculto.
Además, los nombres de archivos y carpetas no pueden terminar con ninguna de las siguientes cadenas:
.files
_files
-Dateien
_fichiers
_bestanden
_file
_archivos
-filer
_tiedostot
_pliki
_soubory
_elemei
_ficheiros
_arquivos
_dosyalar
_datoteke
_fitxers
_failid
_fails
_bylos
_fajlovi
_fitxategiak
Fuente: http://support.microsoft.com/kb/905231/en-us
~, #, %, & , *, , , , :, <, >, ?, /, |, "
El carácter especial anterior no está permitido para archivos/carpetas. Debe reemplazar estos caracteres para crear carpetas o archivos.
No para resucitar un hilo antiguo, pero pensé en agregar mi expresión regular. Un problema de KB905231 no está claro si los sufijos de archivo prohibidos (es decir, .files o _files, etc.) incluyen o excluyen la extensión del archivo. Asumí que incluir foo.doc.files no coincidiría, pero foo.files.doc sí.
^(?![._]|.*(?:.|.files|_files|-Dateien|_fichiers|_bestanden|_file|_archivos|-filer|_tiedostot|_pliki|_soubory|_elemei|_ficheiros|_arquivos|_dosyalar|_datoteke|_fitxers|_failid|_fails|_bylos|_fajlovi|_fitxategiak)$)[^!#%&*:<>?/|"]+$
Editar (26/01/17): no impidió la tilde o el punto doble en el medio. Aquí hay uno nuevo con algunas pruebas unitarias en https://regex101.com/r/XWYV2r/2
Esto solo está ligeramente probado. YMMV.
(?!.+...+)^(?![._]|.*(?:.|.files|_files|-Dateien|_fichiers|_bestanden|_file|_archivos|-filer|_tiedostot|_pliki|_soubory|_elemei|_ficheiros|_arquivos|_dosyalar|_datoteke|_fitxers|_failid|_fails|_bylos|_fajlovi|_fitxategiak)$)[^~#%&*\:<>?/|"]+$
Recuerda que tienes la opción de decir si te fue útil.