windows编程一日一练(3)
今天把上次的批量重命名功能的具體代碼寫了出來,邏輯思維雖然比較順暢,但由于還沒有很多的編程經驗,程序代碼有點冗余,登不上大雅之堂,看起來也不如專業人士的規范,這點以后要慢慢形成好的編程習慣。下面是代碼實現和相應的注釋
?/*
Version 1.0
writer shannon
本軟件使用條件:
1:輸入的后綴名不超過10個字符
2:目錄下不超過1000個文件?
*/
#include<stdio.h>?
#include<stdlib.h>
#include<windows.h>
#include<io.h>
#define MAXEX 10
#define MAX_NUM 1000
typedef struct _namelist_??????????? //定義文件名列表結構體,用來存放目錄下所有的文件名?
{
?? char name[MAX_PATH]; ?? ??? ?
};
int main(int argc, TCHAR* argv[])
{
??? ?//獲取文件所在目錄,filepath存放目錄路徑?
??? CHAR filepath[MAX_PATH];
?? ?HMODULE module=GetModuleHandle(NULL);? ?
?? ?char *p;
?? ?GetModuleFileName(module,filepath,MAX_PATH);???? //獲取程序路徑
?? ?p=strrchr(filepath,'\\');
?? ?*p='\0';??????????????????????????????????????? //字符串的結尾標識符?
?? ?
?? ?//輸入重命名信息?
?? ?char ex_name[MAXEX];
?? ?char search[MAX_PATH];
?? ?char new_name[MAX_PATH];
?? ?long handle;
?? ?struct _finddata_t file_info;
?? ?printf("輸入文件格式\n");?
?? ?gets(ex_name);
?? ?printf("請輸入文件名\n");
?? ?gets(new_name);
?? ?
?? ?//獲取原文件名,src_name[]用來存放原文件名 ,des_name[]用來存放目的文件名?
?? ?_namelist_ src_name[MAX_NUM],des_name[MAX_NUM];?
?? ?sprintf(search,"*.%s",ex_name);???????????????? //search為搜索條件?
?? ?handle=_findfirst(search,&file_info);
?? ?if(handle==-1)
?? ?{
?? ????? printf("文件獲取失敗\n");
?? ????? return 0; ?? ??? ??? ?
??? }
??? int i=1;
??? int flag=0;
??? while(flag!=-1)
??? {
???????? char tem[MAX_PATH];
?? ? ?? ? if(i<10)
?? ? ?? ???? sprintf(tem,"%s00%d.%s",new_name,i,ex_name);
?? ? ?? ? if(i>=10&&i<100)
?? ? ?? ???? sprintf(tem,"%s0%d.%s",new_name,i,ex_name);
???????? if(i>100)
??????????? sprintf(tem,"%s%d.%s",new_name,i,ex_name);
?? ??? ? sprintf(des_name[i-1].name,"%s\\%s",filepath,tem);
?? ??? ? sprintf(src_name[i-1].name,"%s\\%s",filepath,file_info.name);
?? ??? ? flag=_findnext(handle,&file_info);
?? ??? ? i++;?? ??? ?? ?
?? ?}
?? ?_findclose(handle);
?? ?
?? ?//復制并刪除原文件?
?? ?for(i=i-2;i>=0;i--)
?? ?{
??? ??? ?CopyFile(src_name[i].name,des_name[i].name,false);?? ?
??? ??? ?DeleteFile(src_name[i].name);
?? ?}
?? ?printf("更改成功\n");?
?? ?system("pause");
?? ?return 0;
}
總結
以上是生活随笔為你收集整理的windows编程一日一练(3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机与体育教育的关系,体育教学论文:健
- 下一篇: Windows 下,使用 Pycharm