getdlgitem:批量删除指定字符串(C语言基础)

 2021-07-15 8:02    77  

/**

getdlgitem:批量删除指定字符串(C语言基础)

程序功能getdlgitem:

getdlgitem:批量删除指定字符串(C语言基础)

目录下或分区下的文件批量剔除指定字符串

getdlgitem:批量删除指定字符串(C语言基础)

作用范围getdlgitem:

getdlgitem:批量删除指定字符串(C语言基础)

能处理目录树或分区下所有文件

getdlgitem:批量删除指定字符串(C语言基础)

若出现权限问题可以预先修改文件权限后再执行

具体用法代码下面有截图

注意getdlgitem:

会用到相关的第三方库或自定义头文件

**/

#include "stdafx.h"

#include <windows.h>

#include <windowsx.h>

#include "resource.h"

#include "MainDlg.h"

#include<stdio.h>

#include<string.h>

#include<ctype.h>

#include<stdlib.h>

#include<io.h>

#include<direct.h>

#define MAX_PATH 260

#define M_PATH 260 /*文件最大路径长度*/

/*函数声明*/

char *strrstr(char *file,const char *str);

void myRen2(char *file);

void dirsearch(const char *path);

void dir_fname(const char *filepath,char *dir,char *fname);

/*全局变量*/

char str1[M_PATH],s[M_PATH];

int Slen;

BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

{

switch(uMsg)

{

HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);

HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);

HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);

}

return FALSE;

}

BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)

{

SetDlgItemText(hwnd,IDC_EDIT1,"请输入文件所在目录");

SetDlgItemText(hwnd,IDC_EDIT2,TEXT("请输入待剔除的字串"));

return TRUE;

}

void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)

{

switch(id)

{

case IDC_OK1:

GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1));

MessageBox(hwnd,TEXT(str1),TEXT(">>>>"),MB_OK);

break;

case IDC_OK2:

GetDlgItemText(hwnd,IDC_EDIT2,s,sizeof(s));

Slen=strlen(s);

MessageBox(hwnd,TEXT(s),TEXT(">>>>"),MB_OK);

break;

case IDC_BUTTON:

dirsearch(str1);

break;

default:

break;

}

}

void Main_OnClose(HWND hwnd)

{

EndDialog(hwnd, 0);

}

/////////////////////////////

void myRen2(char *file)

{

char *Ps;

char dir[260],oldname[260],newname[260],firstname[260];

int j=0,k=0;

strcpy(firstname,file);

dir_fname(file,dir,oldname);

Ps=strrstr(oldname,s);

if(Ps==NULL)

return;

while(k!=Slen)

k++;

while(*(Ps+k)!='\0')

*(Ps+j++)=*(Ps+k++);

*(Ps+j)='\0';

strcpy(newname,dir);

strcat(newname,oldname);

rename(firstname,newname);

return;

}

void dir_fname(const char *filepath,char *dir,char *fname)

{

char *p;

char n=0;

p=strrchr(filepath,'\\');

if(!p)

return;

while(1)

{

if(*(p+1+n)=='\0')

break;

*(fname+n)=*(p+1+n);

n++;

}

*(fname+n)='\0';

n=0;

while(1)

{

if((filepath+n)>p)

break;

*(dir+n)=*(filepath+n);

n++;

}

*(dir+n)='\0';

}

/*自定字符串定位函数*/

char *strrstr(char *file,const char *str)

{

int j;

char *p,*np=NULL,*fp=file;

for(j=0;*(file+j)!='\0';j++)

{

p=strstr(fp,str);

if(p!=NULL){

np=p;

fp=p+1;

}

}

return np;

}

/**********遍历模块***************/

void dirsearch(const char *path)

{

char dirfind[MAX_PATH];//遍历路径

char ffind[MAX_PATH];//发现路径

struct _finddata_t fileinfo;

long handle;

strcpy(dirfind,path);

strcat(dirfind,"\\*");

handle=_findfirst(dirfind,&fileinfo);

if(handle==-1)return;

do{

if(fileinfo.attrib&_A_SUBDIR){

if(fileinfo.name[0]!='.'){

strcpy(dirfind,path);

strcat(dirfind,"\\");

strcat(dirfind,fileinfo.name);

dirsearch(dirfind);

}

}

else{

strcpy(ffind,path);

strcat(ffind,"\\");

strcat(ffind,fileinfo.name);

myRen2(ffind);//调用改名myRen2函数

}

}while(_findnext(handle,&fileinfo)==0);

_findclose(handle);

}

//部分代码以及实例用法截图

本文标签:

原文链接:https://www.xgfox.com/bcrm/921.html

本文版权:如无特别标注,本站文章均为原创。