Umlaute bei Zugriff auf Ordner



  • Hallo zusammen, ich habe leider nicht so viel Erfahrung mit C und würde gerne ein Programm zum laufen bekommen, das auf einen Ordner zugreift, welcher einen Umlaut enthält.

    Hier der Code dazu:

    #include <dirent.h>
    #include <windows.h>
    #include <unistd.h>
    #include <stdio.h>
    
    int main(){
        while(1){
            DIR *dir = opendir("C:\\Users\\Maximilian\\OneDrive\\E-Mail-Anhänge");
            if(dir){
                closedir(dir);
                RemoveDirectory("C:\\Users\\Maximilian\\OneDrive\\E-Mail-Anhänge");
            }
            Sleep(1000);
        }
        return 0;
    }
    

    Kann man das "ä" irgendwie codieren? Das Programm soll einen unerwünschten Ordner löschen, der ständig von Microsoft neu erstellt wird (gibt keine Möglichkeit das auszustellen).

    Danke schon mal 😉



  • War das bei neueren Windows nicht so, dass die die Namen nicht mehr immmer so anzeigen, wie sie wirklich sind ? Ansonsten ist das doch eine dankbare Aufgabe für den Taskplaner. Eventuell mal mit einem vernünftigen Dateimanager erst mal feststellen, wie der Ordner wirklich heißt und dann ein rmdir ordner in den Taskplaner packen und gut ist.



  • Windoofs verwendet irgendeinen ISO/IEC 8859-x Zeichensatz. Möglich ist es, die Sonderzeichen über Escape-Sequenzen einzufügen.

    Beispiel: puts ("H\x94lle"); x94 ist dann das ö.

    Beim GCC kann man aber auch mit:
    -fexec-charset
    -fwide-exec-charset
    -finput-charset
    Zeichensätze einstellen. Schau mal in die Doku.



  • Das mit den Escape Sequenzen hat leider nicht geklappt. Das habe ich auch bereits probiert. Ich habe es jetzt aufgegeben, anscheinend nicht möglich, da muss es doch einen Trick geben 😕

    Ich habe das gleiche dann mit einem Windows Script versucht und da hatte ich genau das gleiche Problem. Ordner / Dateinamen mit Umlauten lassen sich einfach nicht öffnen / löschen / verschieben. Ich habe auch viel gegoogelt aber keine Lösung gefunden.

    In der Windows Script Library gibt es einen Befehl, mit dem man Ordner löschen kann, der auch Wildcards akzeptiert. Ich habe jetzt das "ä" als Wildcard gesetzt und der Ordner lässt sich löschen. Das ganze dann in eine Loop und mit try/catch, da die Funktion folderExists() keine Wildcards akzeptiert 🙄 🙄

    Wenn jemand weiß, wie man in Windows Dateien / Ordner mit Umlauten öffnet, wäre das nett, wenn die Person das mal kurz erläutern könnte. 🙂

    Falls jemand das Skript braucht: https://superuser.com/a/1188784/490904


Anmelden zum Antworten