Laden...

Ungültige Zeichen entfernen aus Dateinamen

Erstellt von digi333 vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.002 Views
D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren
Ungültige Zeichen entfernen aus Dateinamen

Es kommt bei mir vor, dass eine Datei üngültige Zeichen für eine Datei verwendet, deswegen hab ich mir eine Filtermethode gebaut die nicht filtert. 🤔


public string StringFilter(string strValue)
        {
            string temp = strValue.Replace("\\", "");
            temp = strValue.Replace("/", "");
            temp = strValue.Replace(":", "");
            temp = strValue.Replace("*", "");
            temp = strValue.Replace("?", "");
            temp = strValue.Replace("<", "");
            temp = strValue.Replace(">", "");
            temp = strValue.Replace("\"", "");
            temp = strValue.Replace("|", "");
            return temp;
        }

Hinterher besitzt temp immer noch Hochkommas und nicht erlaubte Zeichen. Warum das?

3.971 Beiträge seit 2006
vor 15 Jahren

Du hast bei jedem Replace eine falsche Variable genommen. Die richtige wäre Temp (Instanz und Rückgabewert)

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

S
341 Beiträge seit 2008
vor 15 Jahren

Servus,

hast du mal im debugger geschaut ob er das überhaupt durchläuft ?
sprichtz breakpoints gesetzt um das im debug mode zu prüfen ?....
oft sieht man dann selbst warum was nicht funktioniert....

Grüße
Smou

**Nur die Kenner können mit 10 Fingern bis 1023 zählen !!**
private int Main()
{
   string programmingSkills = getMySkills("programming")
   return = 1;
}
193 Beiträge seit 2006
vor 15 Jahren

Noch so als Nachtrag:

Über Path.GetInvalidFileNameChars() bekommst du alle Zeichen die in einem Dateinamen nicht gültig sind.

Gruß Jake

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo digi333,

außerdem geht das mit [] im Pattern mit einem einzigen Replace. Und es ist auch sinnvoll, dass in einem Rutsch zu machen.

herbivore

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren

Du hast bei jedem Replace eine falsche Variable genommen. Die richtige wäre Temp (Instanz und Rückgabewert)

Das versteh ich nicht... Es soll aus strValue alle Werte überschrieben werden und in temp gespeichert werden. Das macht doch die Zeile.

@Smou: Der läuft gut durch die Filter, aber ändert nichts.

@Herbivore: Momentan ändert er es noch nichmal für einen Wert.

Am Anfang ist
strValue "&quot;Just hold me&quot; - MARIA MENA" string

Bei Return ist
temp "&quot;Just hold me&quot; - MARIA MENA" string

also unverändert.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo digi333,

Das versteh ich nicht... Es soll aus strValue alle Werte überschrieben werden und in temp gespeichert werden. Das macht doch die Zeile.

verstehst du das wirklich nicht? Es ist doch offensichtlich, warum du ab dem zweiten Replace temp nehmen musst.

Momentan ändert er es noch nichmal für einen Wert.

doch 🙂 Nur überschreibt er das immer wieder.

Aber wie gesagt, du solltest das ohnehin in einen Pattern zusammenfassen.

herbivore

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren

*Hand an den Kopf knall*

Jetzt versteh ich den Fehler... Sorry! War ein Copy 'n Paste Fehler.