2012-01-17 13 views
7

En Windows, las comparaciones de archivos son operaciones que no distinguen entre mayúsculas y minúsculas. Sin embargo, un sistema realmente insensible a las mayúsculas y minúsculas sería sensible a la configuración regional, y tendría que lidiar con tres casos, en lugar de dos (al menos, según Unicode). Por diversas razones, me gustaría replicar la forma en que Windows hace esto fuera de Windows, si es posible.¿Cómo hace Windows rutas y nombres de archivo que no distinguen entre mayúsculas y minúsculas?

¿Windows utiliza este tipo de soporte de configuración regional, o sigue un patrón más predecible (por ejemplo, algo así como la configuración OrdinalIgnoreCase de C#)?

Respuesta

2

Por lo que yo sé NTFS soporta dos modos: el espacio de nombres

  1. POSIX:
    Cualquier unidad de código UTF-16 (mayúsculas y minúsculas), excepto U + 0000 (NUL) y/(barra).

  2. Win32 espacio de nombres:
    Cualquier UTF-16 unidad de código (mayúsculas y minúsculas) excepto U + 0000 (NUL)/(barra) \ (barra invertida) y algunos otros personajes como :*" etc.

En el modo Win32, cualquier programa que use Win32-API convierte cualquier carácter de un nombre de archivo en mayúscula (si es posible) y usa ese nombre internamente.

+0

¿Puede hacer referencia a eso? No puedo ver en ninguna parte que todo se convierta en mayúsculas, en particular dado que eso sería completamente incorrecto en muchos lugares ... –

+1

tuve que cavar profundamente en mis marcadores ... http: //blogs.msdn .com/b/michkap/archive/2005/01/16/353873.aspx – Mithrandir

+0

Bueno, esa es la tabla de mapeo de casos. Eso no quiere decir que todo se convierta en mayúsculas primero: P –

Cuestiones relacionadas