Ребят, выбираю папку где есть фото названия все разные, надо их переименовать по порядку 1.jpg 2.jpg и тд. Получаем кол-во файлов в папке Переименовываем Вроде меняет, но все ни так, например в папке 35 фото, он меняет 34, 35 нету вместо него 36, смотришь кол-во фото в папке их уже 36, хз где еще 1 фотка, когда-то вообще удаляет файлы, у друга 2 файла появляется, но их физ нету
aydar, ты не забывай, что в папке могут находиться скрытые системные файлы Desktop.ini и Thumbs.db, отсюда, возможно и скачет твой счетчик, ну и расширение файла ты не учитываешь. я б как-то так сделал: Code: // dir - должна заканчиваться "\" procedure _ReName(const dir: String); var oldName, ext: String; lpFindFileData: TWIN32FindData; hFind: THandle; iCount: Integer; begin iCount:= 0; hFind:= FindFirstFile(PChar(dir + '*.*'), lpFindFileData); if (hFind <> INVALID_HANDLE_VALUE) then try while True do begin // если папка либо скрытый файл - пропускаем if ((lpFindFileData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0) or ((lpFindFileData.dwFileAttributes and FILE_ATTRIBUTE_HIDDEN) <> 0) then begin if FindNextFile(hFind, lpFindFileData) then continue else if (GetLastError = ERROR_NO_MORE_FILES) then Break; end else begin oldName:= dir + PChar(@lpFindFileData.cFileName); ext:= ExtractFileExt(oldName); RenameFile(oldName, dir + IntToStr(iCount) + ext); Inc(iCount); if not FindNextFile(hFind, lpFindFileData) then Break; end; end; finally Windows.FindClose(hFind); end; end;