none
Problem mit .fileexist() und "Turkish i Problem"

    Frage

  • Ich habe ein VB2010 Express Tool, dass weltweit eingesetzt wird. Plötzlich bekomme ich aus der Türkei reports, dass das Progamm mit "Error(53) File not found" abgebrochen wird. Jedoch nur, wenn dieses file existiert. Leider kann ich das nicht reproduzieren, jedoch scheint es so zu sein, dass es durch das "Turkish "i" Problem" während einem .fileexist() ausgelöst wird.

    Eine Abfragen geht z.B. auf "FNIS_FNISBase_Behavior.hkx". Wenn das file existiert, kommt error 53 für "fnıs_fnısbase_behavior.hkx", also einem Namen, der dieses spezielle kleine türkische i enthält. Die Konvertierung kommt auf keinen Fall von mir. Ausserdem kommt error 53 auch nur, wenn die Datei (mit lateinischen Grossbuchstaben) tatsächlich existiert. Existiert sie nicht, wird der der else Zweig korrekt ausgeführt.

    Woran liegt das, und vor allem, kann ich da überhaupt was machen? Danke im vorraus.

    Public Const FNISBehaviorName As String = "FNIS_*_Behavior.hkx"
    Public Const AnimListName As String = "FNIS_*_List.txt"
    Public Const PathToCharacter As String = "..\..\meshes\actors\character\"
    Public Const PathToAnimation As String = PathToCharacter + "animations\"
    
    For Each Dir As String In Directory.GetDirectories(PathToAnimation)
    	params = Split(Dir, "\")
    	Dim Mydir As String = params(UBound(params))
    	AnimListFile = Dir + "\" + Replace(AnimListName, "*", Mydir)
    	BFILE = PathToBehavior + Replace(FNISBehaviorName, "*", Mydir)
    	If .FileExists(AnimListFile) Then
    		If .FileExists(BFILE) Then		'(1) problem statement
    			'some code
    		Else
    			WriteWarning(...)		'(2) Warning if behavior file is missing
    		End If
    	End If
    Next




    • Bearbeitet fore0615 Freitag, 15. Februar 2013 11:46
    Freitag, 15. Februar 2013 11:44

Antworten

Alle Antworten