Warum erkennt Path.GetInvalidPathChars() \r nicht, Path.GetFullPath() jedoch? (.NET Framework 4.7.2)
Ich arbeite mit einer .NET 4.7.2-Anwendung und überprüfe Dateipfade.
Mir ist ein unerwartetes Verhalten aufgefallen, wenn die Eingabezeichenfolge einen abschließenden Wagenrücklauf (\r) enthält.
Warum erkennt Path.GetInvalidPathChars() \r nicht, Path.GetFullPath() jedoch? (.NET Framework 4.7.2) Ich arbeite mit einer .NET 4.7.2-Anwendung und überprüfe Dateipfade. Mir ist ein unerwartetes Verhalten aufgefallen, wenn die Eingabezeichenfolge einen abschließenden Wagenrücklauf (\r) enthält. [code]string input = "C:\\Temp\\TestFolder\r";
if (input.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0 || input.IndexOfAny(Path.GetInvalidPathChars()) >= 0) { // This block is NOT hit return true; }
try { var fullPath = Path.GetFullPath(input);
if (fullPath.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0 || fullPath.IndexOfAny(Path.GetInvalidPathChars()) >= 0) { // This block IS hit return true; } } catch { return true; } [/code] [b]Beobachtung[/b] [list] [*][code]input[/code] enthält ein abschließendes \r [*]Das erste if gibt nicht true zurück [*]Nach dem Aufruf von Path.GetFullPath(input) gibt das zweite if true zurück [/list] [b]Fragen[/b] [list] [*]Warum nicht Path.GetInvalidPathChars() erkennt das \r in der ursprünglichen Eingabe?
[*]Ist Path.GetInvalidPathChars() nicht als vollständiger Validierungsmechanismus gedacht?
[*]Wird dieses Verhalten in .NET 4.7.2 erwartet oder handelt es sich um einen Fehler?
Wenn ich die Funktion .offset() oder .position() von jQuery verwende, geben sie immer undefiniert zurück. Wenn ich sie in die Konsole eingebe, erhalte ich das gleiche Ergebnis, aber eval(?) gibt den...
Wenn ich die Funktion .offset() oder .position() von jQuery verwende, geben sie immer undefiniert zurück. Wenn ich sie in die Konsole eingebe, erhalte ich das gleiche Ergebnis, aber eval(?) gibt den...
Wenn ich die Funktion .offset() oder .position() von jQuery verwende, geben sie immer undefiniert zurück. Wenn ich sie in die Konsole eingebe, erhalte ich das gleiche Ergebnis, aber eval(?) gibt den...