『壹』 用C语言 把D盘所有的*.txt文件《文本文件》改为*.abc 文件----- 更改文件后缀
//
// File name : Main.cpp
//
// Code by : jiangyonghang
//
// Project name : ExtendRenamer
//
// Create datetime: 2013-02-24 18:42:40
//
// Tested or implemented header
// ...
// C system headers
#include <windows.h>
#include <tchar.h>
// C++ system headers
// ...
// Headers from other projects
// ...
// Headers of current project
// ...
// 第一个参数是目录名,第二个参数是原来的后缀名晌判,第三个参数是新后缀名,第四个参数true表悔冲示递归重命名,false表示只对当前目录而不对子目录进行重命名
void RenameExtention(const TCHAR kRootPath[], const TCHAR kOldExtention[], const TCHAR kNewExtention[], int recursive);
int main()
{
TCHAR kRootPath[] = TEXT("D:\\碧谨歼");
RenameExtention(kRootPath, TEXT("txt"), TEXT("abc"), false);
return 0;
}
void GetSearchModal(const TCHAR kRootPath[], TCHAR ret_search_modal[])
{
_tcscpy(ret_search_modal, kRootPath);
if (ret_search_modal[_tcslen(ret_search_modal) - 1] != TCHAR('\\') )
{
_tcscat(ret_search_modal, TEXT("\\") );
}
_tcscat(ret_search_modal, TEXT("*") );
return;
}
int MatchExtention(const TCHAR kFileName[], const TCHAR kTargetExtention[])
{
const TCHAR *kLastDot = _tcsrchr(kFileName, TCHAR('.') );
if (NULL == kLastDot)
{
return false;
}
return (0 == _tcscmp(kLastDot + 1, kTargetExtention) );
}
void (const TCHAR kOldFileName[], const TCHAR kNewExtention[], TCHAR ret_new_file_name[])
{
_tcscpy(ret_new_file_name, kOldFileName);
TCHAR *last_dot = _tcsrchr(ret_new_file_name, '.');
if (last_dot != NULL)
{
last_dot++;
_tcscpy(last_dot, kNewExtention);
}
return;
}
void RenameExtention(const TCHAR kRootPath[], const TCHAR kOldExtention[], const TCHAR kNewExtention[], int recursive)
{
TCHAR search_modal[MAX_PATH] = {TCHAR('\0')};
GetSearchModal(kRootPath, search_modal);
WIN32_FIND_DATA wfd;
HANDLE hIterator = FindFirstFile(search_modal, &wfd);
if (INVALID_HANDLE_VALUE == hIterator)
{
return;
}
while (1)
{
if (_tcscmp(wfd.cFileName, TEXT(".") ) && _tcscmp(wfd.cFileName, TEXT("..") ) )
{
TCHAR t_file_name[MAX_PATH];
_tcscpy(t_file_name, kRootPath);
if (t_file_name[_tcslen(t_file_name) - 1] != TCHAR('\\') )
{
_tcscat(t_file_name, TEXT("\\") );
}
_tcscat(t_file_name, wfd.cFileName);
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (recursive)
{
RenameExtention(t_file_name, kOldExtention, kNewExtention, true);
}
}
else
{
if (MatchExtention(t_file_name, kOldExtention) )
{
TCHAR new_file_name[MAX_PATH];
(t_file_name, kNewExtention, new_file_name);
MoveFile(t_file_name, new_file_name);
}
}
}
int ret_code = FindNextFile(hIterator, &wfd);
if (!ret_code)
{
if (ERROR_NO_MORE_FILES == GetLastError() )
{
break;
}
return;
}
}
if (hIterator != INVALID_HANDLE_VALUE)
{
FindClose(hIterator);
hIterator = INVALID_HANDLE_VALUE;
}
return;
}
『贰』 如何用c语言重命名
可以通过C库函数rename实现。
头文件:stdio.h
原型::int rename(char *oldname, char *newname);
功能: 给一个文件重命名,从原始的oldname改成新名字newname。如果oldname和newname带有路径,且所在文件夹不同,那么用该函数可以实现文件移动功能。删除成功返回0,否则返回-1。
使用rename需要注意:
一、重命名文件:
如果newname指定的文件存在,则会被覆盖。
如果newname与oldname不在一个目录下,则相当于移动文件。
二、重命名目录:
如果oldname和oldname都为目录,则重命名目录。
如果newname指定的目录存在且为空目录,则先将newname删除。
对于newname和oldname两个目录,调用进程必须有写权限。
重命名目录时,newname不能包含oldname作为其路径前缀。例如,不能将/usr更名为/usr/foo/testdir,因为老名字( /usr/foo)是新名字的路径前缀,因而不能将其删除。
『叁』 请问怎么用C语言打开这样的本地网址并且读取里面的文件谢谢!
右键点击那个txt文件,重命名讲尾缀改为.c
打开就可以了
或者不打开
将vc打开
点击打开文件
找到这个修改了后缀的文件打开就可以了
『肆』 不小心把c文件的打开方式设成记事本了,结果就改不回去了,谁知道怎么办
方法一:你打开c语言编译器,哪里有一个打开,找到你想要的那个文件,点击,就可以打开了
方法二:把后缀名“.txt”,改成“.c”或".cpp"即可;
方法三:把记事本的内容重新粘贴到编译器里,在生成一个新文件
求最佳答案
『伍』 用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);
}
『陆』 如何更改C语言的文件名(如下图)
点击菜单栏上的文件按钮,可以看到另存为,可以把程序文件存成其他的名字。
还有一个方法是,关闭vs,然后找到工程文件夹,找到 练习.c,然后点右键,选择重命名即可。