批量改文件名Version1 后续代码


void RenameFile_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
 TCHAR szPath[MAX_PATH]={0},
  szOldName[MAX_PATH]={0},
  szNewName[MAX_PATH]={0},
  int nCount=0,i=0;
 HWND hwndListBox = GetDlgItem(hwnd,IDC_LIST);
 TCHAR* s=NULL;
 
 switch(id)
 {
 case IDC_BUTTON_LOADFILES:
  //Get the path;
  Edit_GetText( GetDlgItem(hwnd,IDC_EDIT_PATH),szPath,MAX_PATH );
  
  _tcscat(szPath,TEXT("//*"));
  //File files under the path
  FillListBox(hwndListBox,DDL_ARCHIVE|DDL_READWRITE,szPath);
  break;
 case IDOK:
  //1.read filename in listbox
  //2.clear [*] after the file name such as 123[1].gif
  //update the listbox
  nCount = ListBox_GetCount( hwndListBox);
  for(i=0;i<nCount;i++)
  {
   ListBox_GetText(hwndListBox,i,szOldName);//szOldName:123[1].gif
   _tcscpy(szNewName,szOldName);//保留原来的文件名
   //1.cut the extension
   //2.find [] and delete it
   //从szOldName + _tcslen(szOldName) -4开始,向szOldName中copy 1个/0,即清除szOldname的后4位
   _tcsncpy(szNewName + _tcslen(szNewName) -4 ,"/0",1);//szNewName :123[1]
   
   //取出[1]来
   s = _tcschr(szNewName,'['); //这时 s= [1]
   
   if(s == 0)
    continue;//忽略没有[的文件,回到for
   
   //将szOldName的后s位去掉
   _tcsncpy(szNewName + _tcslen(szNewName)-_tcslen(s) ,"/0",1); //szNewName :123
   
   //连上原来的扩展名
   _tcsncat(szNewName,TEXT(".gif"),4);
   //连上完整的路径!!c:/123
   Edit_GetText( GetDlgItem(hwnd,IDC_EDIT_PATH),szPath,MAX_PATH );
   _tcscat(szPath,TEXT("//"));
   _tcscat(szPath,szNewName);
   _tcscpy(szNewName,szPath);
   
   Edit_GetText( GetDlgItem(hwnd,IDC_EDIT_PATH),szPath,MAX_PATH );
   _tcscat(szPath,TEXT("//"));
   _tcscat(szPath,szOldName);
   _tcscpy(szOldName,szPath);
   
   MoveFile(szOldName,szNewName);
  }
  Edit_GetText( GetDlgItem(hwnd,IDC_EDIT_PATH),szPath,MAX_PATH );
  
  _tcscat(szPath,TEXT("//*"));
  FillListBox(hwndListBox,DDL_ARCHIVE|DDL_READWRITE,szPath);
  break;
  
 case IDCANCEL:
  EndDialog(hwnd,id);
  break;
 }
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值