2012-04-30 18 views
23

estoy recibiendo errores de los clientes que se están cargando archivos con dos puntos en el nombre del archivo, es decir C:/uploads/test : doc.html¿Cómo obtener un archivo en Windows con dos puntos en el nombre del archivo?

que suponer que algún sistema Unix o Linux está generando el archivo pero no estoy seguro de cómo los usuarios que están ahorrando con el nombre de archivo inválido. He codificado una pieza que debe cambiar el nombre del documento al cargarlo. Mi problema es que no puedo probarlo porque no puedo obtener un archivo en Windows que tenga dos puntos en el nombre del archivo.

+6

Hay algunos caracteres que simplemente no están permitidos en los nombres de archivo de Windows, los dos puntos son uno de ellos. Lo siento. –

+5

P.S. la lista completa de caracteres no válidos está aquí: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#file_and_directory_names –

+1

Podría ser posible hacer esto con la API nativa o desde un controlador de dispositivo. Pero no podría cargar el archivo desde una aplicación de Windows, o hacer cualquier otra cosa con él. –

Respuesta

29

Encontré un carácter muy similar a un dos puntos, "꞉" es un carácter Unicode llamado Modifier Letter Colon. Esto no tiene espacio como el colon de ancho completo y es prácticamente igual a un colon regular, pero el símbolo funciona. Puede copiarlo y pegarlo desde arriba o puede usar el punto de código, U + A789

9

Un dos puntos es un carácter no válido para un nombre de archivo de Windows. No podrá permitir ':' en el nombre del archivo, pero puede evitarlo.

Puede hacer lo que parece que ya hizo; crea una secuencia de comandos que reemplaza estos caracteres no válidos con los válidos en el lado de UNIX. O bien, puede hacerse cargo de esto en el servidor de Windows con traducción Nombre de archivo Carácter: http://support.microsoft.com/kb/289627

+1

Creo que he resuelto el problema cambiando el nombre de las cargas de archivos sobre la marcha, pero necesito obtener un archivo en una máquina de Windows con dos puntos en el nombre del archivo. Nuestros clientes lo están haciendo de alguna manera, así que debe ser posible. – David

+0

@David: ¿qué te hace pensar que tus clientes están haciendo esto? ¿Estás seguro de que las cargas proceden de máquinas con Windows? –

+1

Tenga cuidado: * puede * crear algo llamado FOO: BAR, pero lo que tiene entonces es un archivo llamado FOO que contiene una secuencia de datos denominada BAR (así como la secuencia de datos sin nombre). En una lista de directorios, solo verá FOO. – dave

3

Es probable por el nombre del archivo que ha proporcionado que el carácter que tiene en sus nombres de archivo no es de dos puntos literal :, que es un carácter reservado en los nombres de archivo de Windows, pero en su sentido completo . Es un personaje Unicode que se parece mucho a dos puntos, visualmente rodeado de espacios que no puedes eliminar. Puede manejarlo de la misma manera que cualquier chacter Unicode, el punto de código es U+FF1A.

+1

esto no aborda la pregunta de OPs; mientras que el consejo es muy bueno, debe colocar esto en un comentario a la pregunta * o * preguntar/responder esto en el estilo de preguntas y respuestas como en Jeopardy, primero preguntando "¿Cómo usar dos puntos en los nombres de archivo de Windows?" pregunta, seleccionando la respuesta del estilo de preguntas y respuestas y proporcionando esta información allí. – vaxquis

+1

@vaxquis: por el contrario, creo que es probable que esto haya sido la causa del problema del PO; pensó que los nombres de archivo con los que estaba tratando tenían dos puntos, pero probablemente eran dos puntos de un ancho completo. –

+1

@HarryJohnston en ese caso, estoy editando la pregunta para incluir explícitamente esta información – vaxquis

Cuestiones relacionadas