mp3-Tag auslesen und dateien umbenennen
-
böserwolf schrieb:
aber es funktioniert nicht...
der Fehler ist beim 1. stringMoveFile(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..