i eher zufällig auf dieses Bit hier in einem Projekt von einem Kollegen:Warum ersetzen ungültige Zeichen in einem Dateinamen mit ' 0'?
foreach (var invalidChar in Path.GetInvalidFileNameChars())
fileName = fileName.Replace(invalidChar, '\0');
die gerenal Idee offensichtlich genug ist, aber ich frage mich, warum er wählte die ungültigen Zeichen mit dem wörtlichen für die Null-Zeichen anstelle einem ersetzen ' reguläres Zeichen oder nur eine leere Zeichenfolge.
Ich denke, es gibt einen guten Grund für diese Wahl (der Typ, der dies geschrieben hat, ist ein Senior in unserem Team), ich möchte nur wissen, was dieser Grund ist.
Ich würde sagen, dass dies sogar einfach falsch ist ... Meine erste Vermutung ist, dass dies aus alten C-Code ist, wo Zeichenketten eine Null-terminiert. MSDN gibt an, dass Zeichen von 1 bis 31 + einige andere ungültig sind, die \ 0 nicht enthalten, aber ich bin ziemlich sicher, dass \ 0 Probleme verursachen wird. –
Fragen Sie Ihren Senior-Entwickler, ob er noch in Ihrem Team ist. – Jehof
@ThorstenDittmar mkay ... was würden Sie stattdessen vorschlagen? – garglblarg