假如我想修改N个文件(以图片为例)的名称,新名称命名规则:是一连串间隔固定的数字…… 编程规则:请使用命令提示符命令或者C语言编写……,最好使用这两种方法各写一个程序! 程序通过VC6.0编译通过,运行: Input your fild file type: *.bmp(回车) Input your rename name start position: 2009(回车) 之后程序会将当前目录下边所有的.bmp的文件更名成以2009起始位置的文件名 2009.bmp 2010.bmp ... #include <stdio.h> #include <string.h> #include <io.h> #include <conio.h> // getch(); #include <malloc.h> #define MAX_NAME_LEN 256 #define MAX_EXT_LEN 32 // extra name struct _finddata_t tTmpFile; char g_achExtName[MAX_EXT_LEN] = {0}; void TGetFileExtName(char *pchFileName) { int nLen = strlen(pchFileName); char *pStr = NULL; char *pFind = NULL; if (nLen < 1) { return; } pStr = pchFileName+nLen-1; // position pointer to string end pFind = pStr; while ((*pStr != '.' ) && (nLen-- > 0)) { pStr--; } strncpy(g_achExtName, pStr, (pFind-pStr+1)); } // test file rename function void TFileRename(int nIndex, char *pchOldName) { char achNewName[MAX_NAME_LEN] = {0}; sprintf(achNewName, "%d%s", nIndex, g_achExtName); if (0 == rename(pchOldName, achNewName)) { printf("Rename %s to %s successful./n", pchOldName, achNewName); } else { printf("Rename %s to %s failed./n", pchOldName, achNewName); } } int main(void) { int nIdx = 0; long hFile; char chFileType[20] = {0}; int nCount = 0; printf("Input your fild file type: "); scanf("%s", chFileType); printf("Input your rename name start position: "); scanf("%d", &nIdx); /* Find first *.x file in current directory */ hFile = _findfirst(chFileType, &tTmpFile); if (-1L == hFile) { printf( "No %s files in current directory!/n", chFileType); } else { TGetFileExtName(chFileType); TFileRename(nIdx, tTmpFile.name); nIdx++; nCount++; /* Find the rest of the *.x files */ while(0 == _findnext(hFile, &tTmpFile)) { TFileRename(nIdx, tTmpFile.name); nIdx++; nCount++; } _findclose(hFile); } printf("/ntotal %s number is: %d/n", chFileType, nCount); getch(); return 0; }