2010-02-01 5 views
2

Qu'est-ce que cela affiche sur OSX? Quelqu'un peut-il exécuter cela sur leurs machines en utilisant Mono?C#/Mac: Path.GetInvalidPathChars() et le résultat Path.GetInvalidFileNameChars()

foreach (char c in System.IO.Path.GetInvalidPathChars()) 
{ 
    Console.Write((byte)c); 
    Console.Write(", "); 
} 

et qu'est-ce que cet affichage:

foreach (char c in System.IO.Path.GetInvalidFileNameChars()) 
{ 
    Console.Write((byte)c); 
    Console.Write(", "); 
} 

Pour référence, je suis notamment la sortie de GetInvalidPathChars sous Windows et Linux. Sortie sous Windows: 34, 60, 62, 124, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 , 17, 1 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,

sortie dans openSUSE: 0,

en outre, J'inclus la sortie de GetInvalidFileNameChars sous Windows et Linux. Sortie sous Windows: 34, 60, 62, 124, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 , 17, 1 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 58, 42, 63, 92 et 47 : 0, 47,

Cordialement,

_NT

+0

Belle référence. Pour le bénéfice des autres lecteurs, 'GetInvalid * Chars' ne sont pas garantis pour récupérer _all_ chars invalides sur une plate-forme, mais tous les caractères retournés sont supposés être invalides. –

+1

Dans votre exemple de code, vous lancez les caractères en octets. Cela détruit l'information que vous voulez; vous récupérerez des nombres potentiellement sans signification. Vous devriez lancer vers int à la place. – Timwi

Répondre

2

la sortie sur Mac OS X est le même que sur Linux:

GetInvalidPathChars: 0, GetInvalidFileNameChars: 0, 47,

+1

Il serait intéressant de l'exécuter sur des systèmes de fichiers montés différemment. Est-ce que quelqu'un peut lancer Linux ou Mac sur un système de fichiers FAT? – maxwellb

0

Voici le code correspondant de Mono sur Github: https://github.com/mono/mono/blob/master/mcs/class/corlib/System.IO/Path.cs#L540

Lorsqu'ils ne sont pas en cours d'exécution sur Windows, les deux méthodes renvoient uniquement le caractère nul et GetInvalidFileNameChars plus le caractère barre oblique. Il ne semble y avoir aucune différence en ce qui concerne ce que le système d'exploitation non-Windows ou le système de fichiers est utilisé.

Questions connexes