Ⅰ 如何在C语言编程里面修改源文件名字
修改文件名,可要调用操作系统提供的API函数,比如Windows上的MoveFile(),也可以直接调用cmd中已提供的重命名命令——rename。下面的示例代码,调用rename命令来重名命文件名。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain(intac,char*pav[])
{
if(ac!=3){
printf("程序名要重命名的文件路径新的文件名
");
printf("示例:test.exe1.txt2.txt
");
return0;
}
if(access(pav[1],0)!=0){
printf("不存在该文件
");
return0;
}
charszcmd[256]="cmd/crename";
strcat(szcmd,pav[1]);
strcat(szcmd,"");
strcat(szcmd,pav[2]);
system(szcmd);
return0;
}
Ⅱ 任务管理器应用程序名称如何修改
c代码:
代码如下(可复制代码到记事本或其他文本编辑工具中,并按相应的文件名及后缀命名,即可合用VC进行编译):
----------------------------------------------以下为main.cpp文件内容---------------------------------------------- #include #include #include "resource.h"
// 窗口处理函数
BOOL WINAPI WinProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) {
case WM_COMMAND: switch (LOWORD(wParam)) {
case IDOK : { char cSearch[64] // 要查找的标题 char cHack[64] // 要修改成的标题
char cText[128]
// 获取文本框变量数据
GetWindowText(GetDlgItem(hDlg, IDC_EDIT1), cSearch, 64) GetWindowText(GetDlgItem(hDlg, IDC_EDIT2), cHack, 64) if (0==strlen(cSearch) || 0==strlen(cHack)) { MessageBox(hDlg, "请输入标题", "请输入标题", 0) break
}
// 获取目标窗口句柄
HWND hFindDlg = FindWindow(NULL, cSearch) if (!hFindDlg) { sprintf(cText, "未找到标题为\"%s\"的程序 !", cSearch) MessageBox(hDlg, cText, "未找到", 0) break
}
// 修改目标窗口标题
SetWindowText(hFindDlg, cHack) //关键函数
sprintf(cText, "已将程序\"%s\"标题改为\"%s\"", cSearch, cHack)
MessageBox(hDlg, cText , "已修改", 0)
break
}
case IDCANCEL : EndDialog(hDlg, 0) break
}
break
}
return FALSE
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int) {
DialogBoxParam(hInstance, (LPCTSTR)IDD_DIALOG1, NULL, WinProc, 0) //这个函数创建一个窗口,并调用WinProc函数进行处理
Ⅲ 用C语言编程修改文件名(C++也行)
麻烦在文件名允许有空白和一些与C语言有冲突的特殊符号。
如果没有上述情况可以这样写:
(1)通过位置参数传入 老扩展名 和 新扩展名
void main(int argc, char *argv[]){}
命令行: my_rename.exe jpeg jpg
程序名在 argv[0]里,"jpeg" 在 argv[1]里,jpg 在 argv[2]里了
l2 = strlen(argv[1]); // 老扩展名长度
(2) 通过
char command[120],namelist[]="all.lis";
sprintf(command,"DIR/B/A-D/OD *.%s > %s", argv[1],namelist);
system(command);
取得所有要换名的文件名字列表,存放在all.lis文件里,一个文件名一行。
(3)打开 all.lis 文件,
FILE *flist;
if ( (flist = fopen(namelist,"r") ) == NULL ) {
printf("\007Cann't open work file: %s ", namelist);exit(1);
};
一行一行读入:
char current_file_name[64],new_name[64];
while ( fgets( current_file_name, 64, flist) !=NULL ) { 处理};
(4)while 循环 处理:
strcpy(new_name,current_file_name);
l = strlen(new_name); // 文件名全长
strncpy(&new_name[0]+(l-l2),"\0",1); // 文件基本名,含点号,不含扩展名
strcat(new_name,argv[2]); // 新文件名
sprintf(command,"REN %s %s",current_file_name,new_name); // 换名命令
system(command); // 执行换名
完整程序:
#include <stdio.h>
#include <stdlib.h>
FILE *flist;
void main(int argc,char * argv[])
{
int l,l2;
char command[240],namelist[]="all.lis";
char current_file_name[64],new_name[64];
if(argc < 3) {printf("\007Usage: %s old_ext new_ext\n",argv[0]);
printf("For example: %s jpeg jpg\n",argv[0]);
exit(0);
}
l2 = strlen(argv[1]);
sprintf(command,"DIR/B/A-D/OD *.%s > %s", argv[1],namelist);
system(command);
if ( (flist = fopen(namelist,"r") ) == NULL ) {
printf("\007Cann't open work file: %s ", namelist);exit(1);
};
while ( fgets( current_file_name, 64, flist) !=NULL ) {
strcpy(new_name,current_file_name);
l = strlen(new_name);
strncpy(&new_name[0]+(l-l2-1),"\0",1);
strcat(new_name,argv[2]);
strncpy(¤t_file_name[0]+l-1,"\0",1);
sprintf(command,"REN %s %s", current_file_name, new_name);
system(command);
};
fclose(flist);
exit(0);
}