mp3-Tag auslesen und dateien umbenennen



  • böserwolf schrieb:

    aber es funktioniert nicht...
    der Fehler ist beim 1. string

    MoveFile(datPath /*Fehler*/, newPath);
    

    Was kann da falsch sein ??

    Deine Fehlerbeschreibung ist echt klasse 😉 🤡



  • ok.. ich weiß, dass ich nicht grad der beste bin...

    ich übergebe dem MoveFile einen String mit dem Pfad und Dateinamen einer mp3-datei
    "C:\spastelruther_katz.mp3"
    und wenn ich den Pfad selbst eingib dann gehts
    ach ja: Der Compiler meldet keinen Error es funktioniert nur nicht...

    Code kommt bald (ist am anderen PC...)



  • Rückgabewert von MoveFile ???



  • Und falls FALSE ( 🙂 ), dann GetLastError() prüfen.



  • // Da gibts noch die übliche include-geschichte
    // und dann gibts da nock eine 128-zeichen struktur (mp3-tag/für die letzten 128
    // Zeichen der mp3-datei
    
    int find_last_point(char a[]); //liefert Index des letzten Punktes zurück
    bool check_if_mp3(char a[]);   //prüft, ob am Ende des Namens ".mp3" steht
    
    int main()
    {
        HANDLE fHandle;
        WIN32_FIND_DATA wfd;
        char filePath[MAX_PATH];
        char anhang[MAX_PATH];
        id3 test;
        int i;
        char newPath[MAX_PATH];
        ifstream datei;
        char szProgramPath[MAX_PATH];
    
        GetModuleFileName(NULL, (LPSTR)szProgramPath, MAX_PATH);
        strcpy(strrchr((const char *)szProgramPath, '\\')+1, "");
        strcat(szProgramPath,"*");
    
        fHandle=FindFirstFile(szProgramPath,&wfd);
        FindNextFile(fHandle,&wfd);
        while (FindNextFile(fHandle,&wfd))
        {
            if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
            {
                if(check_if_mp3(wfd.cFileName))
                {
                    datei.open(wfd.cFileName);
                    datei.seekg(-128,ios::end);
                    datei.read(test.tag,3);
                    datei.read(test.title,30);
                    datei.read(test.artist,30);
                    datei.read(test.album,30);
                    datei.read(test.year,4);
                    datei.read(test.komment,28);
                    datei.read(test.track,2);
                    datei.read(test.genre,1);
                    strcpy(filePath,szProgramPath);
                    filePath[strlen(filePath)-1]='\0';
                    strcat(filePath,wfd.cFileName);
                    strcpy(newPath,szProgramPath);
                    newPath[strlen(newPath)-1]='\0';
                    sprintf(anhang,"%s - %s.mp3",test.artist,test.title);
                    strcat(newPath,anhang);
                    cout << "Umbenannt von " << endl << wfd.cFileName << endl << "zu" << endl << newPath << endl << endl;
                    MoveFile(filePath, newPath);
                    cout << filePath << endl;
                    ShellExecute(NULL,"open",filePath,NULL,NULL,SW_SHOWNORMAL);
                    datei.close();
                }
            }
        }
        FindClose(fHandle);
    
        cout << endl << endl << "Ende";
        getch();
        return 0;
    }
    


  • na der wückgabewert ist natürlich NULL (oder das wenns nicht geht) wenns net geht...
    (sonst hätt ich das problem nicht)

    aber ich weiß den GRUND nicht...
    😞 😞 😞



  • Halloooo, GetLastError()?



  • GetLastError: "32"

    Zufrieden??



  • Simon sez

    ERROR_SHARING_VIOLATION
    The process cannot access the file because it is being used by another process.

    😉



  • böserwolf schrieb:

    Zufrieden??

    gEEnau.. 👍 ..so bekommt man sofort viele nette antworten..


Anmelden zum Antworten