System.IO.Path.GetFileNameWithoutExtension gibt falschen Umlaut zurück

MarioR

Mitglied
Hallo,
ich hab ein Problem mit dem "simplen" GetFileNameWithoutExtension():
21960385ut.png

Aus einer Variable in der ein Dateiname mit Umlaut steht, möchte ich den
Dateinamen ohne Pfad und Extension bekommen. Zurück geliefert wird aber ein
falscher Umlaut.
Das vorher ausgeführte File.Exists(..) funktioniert mit dem "blockPfadName".
in der Zeile 350 schmeißt er dann einen Fehler, da GetFileNameWithoutExtension aus
einem "Ü" ein "Ý" macht.
Die Ausgabe des Direktfenster:
21960360fw.png

Beide Variablen "blockPfadName" und "blockName" sind als "string" definiert.

...mmm... und nun ?????

Gruß Mario
 
Zuletzt bearbeitet:
Wie wurde die Ausgabe im Direktfenster für blockName gemacht (noch im angezeigtem Codebereich oder schon in der Database Klasse)?

Wäre mir jetzt so neu das Problem,
sicher das das Problem nicht eher am Encoding von Database liegt?
 
Hallo Spyke,

ich habe jetzt noch einmal "fein debugt" und nicht erst beim Fehler angefangen.
(ist nur etwas mühsam, da er bis zum Block "Übertage..." 45 loadDWG... durchführt.
... ja beim zweiten Durchlauf hatte ich dann auch die Idee einen Brakepoint mit der Bedingung blockName.StartsWith("Über") zu setzten grrr.)
Siehe da, GetFileNameWithoutExtension() liefert auch ein hübsches "ÜberTage.Halde" zurück.
Das "Ü" wird auch als char(220) erzeugt.
Jedoch der Aufruf der Funktion "AcDatabase.Insert(..." wandelt dann den "blockName" von "ÜberTage.Halde" in "Ýbertage.Halde" um und
schmeißt eine Exception "FatalExecutionEngineError"
Die AcDatabase Klasse kommt aus AutoCAD und repräsentiert eine DWG-Datenbank.
Es schein wohl ein CodePage/String-Kodierungsproblem zu sein

Gruß Mario
 
Der Fehler tritt auch nur auf, wenn der Dateiname mit einem Umlaut beginnt.
Ist der Umlaut ab der 2. Stelle vorhanden, funktioniert es.
 
ich vermute mal AutoCAD geht auf eine native DLL intern, wie ist den die .Net implementierung dazu, vielleicht erkennt man da was
 
Zurück