欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VC實(shí)現(xiàn)批量刪除指定文件的方法

 更新時(shí)間:2014年07月26日 09:39:45   投稿:shichen2014  
這篇文章主要介紹了VC實(shí)現(xiàn)批量刪除指定文件的方法,是一個(gè)比較普遍且實(shí)用的功能,需要的朋友可以參考下

本文所述實(shí)例主要實(shí)現(xiàn)了刪除某個(gè)盤(pán)符下指定位置的文件,可以是TXT、doc、jpeg等格式,只要選定格式后,再定義好盤(pán)符,即可一鍵刪除所有指定類型的文件。再次提示刪除前請(qǐng)確認(rèn),且刪除后不可恢復(fù)。
以下是最主要的核心代碼,其它代碼讀者可以自己添加。

SHFILEINFO shInfo;
memset(&shInfo,0,sizeof(SHFILEINFO));
HIMAGELIST hImage = (HIMAGELIST)SHGetFileInfo("C:\\",0,&shInfo, sizeof( SHFILEINFO ),
 SHGFI_SYSICONINDEX | SHGFI_SMALLICON );
m_ImageList.Attach(hImage); 
m_ComboEx.SetImageList(&m_ImageList);
m_ComboEx.ResetContent();
char pchDrives[128] = {0};
char* pchDrive;
GetLogicalDriveStrings(sizeof(pchDrives), pchDrives); //列舉盤(pán)符
pchDrive = pchDrives;
int nItem = 0;
while(*pchDrive)
{
 COMBOBOXEXITEM   cbi;
 CString      csText;
 cbi.mask = CBEIF_IMAGE|CBEIF_INDENT|CBEIF_OVERLAY|
   CBEIF_SELECTEDIMAGE|CBEIF_TEXT;
 SHFILEINFO shInfo; //定義文件信息
 int nIcon;
 SHGetFileInfo(pchDrive, 0, &shInfo, sizeof(shInfo),
  SHGFI_ICON|SHGFI_SMALLICON); //獲取系統(tǒng)文件圖標(biāo)
 nIcon = shInfo.iIcon;
 //設(shè)置COMBOBOXEXITEM結(jié)構(gòu)
 cbi.iItem  = nItem;
 cbi.pszText  = pchDrive;
 cbi.cchTextMax = strlen(pchDrive);
 cbi.iImage  = nIcon;
 cbi.iSelectedImage = nIcon;
 cbi.iOverlay  = 0;
 cbi.iIndent  = (0 & 0x03); 
 m_ComboEx.InsertItem(&cbi); //插入數(shù)據(jù)
 nItem++;
 pchDrive += strlen(pchDrive) + 1;
 }
 return TRUE; // return TRUE unless you set the focus to a control
}
void CDeleteDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
 if ((nID & 0xFFF0) == IDM_ABOUTBOX)
 {
 CAboutDlg dlgAbout;
 dlgAbout.DoModal();
 }
 else
 {
 CDialog::OnSysCommand(nID, lParam);
 }
}
void CDeleteDlg::OnPaint() 
{
 if (IsIconic())
 {
 CPaintDC dc(this); // device context for painting
 SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
 // Center icon in client rectangle
 int cxIcon = GetSystemMetrics(SM_CXICON);
 int cyIcon = GetSystemMetrics(SM_CYICON);
 CRect rect;
 GetClientRect(&rect);
 int x = (rect.Width() - cxIcon + 1) / 2;
 int y = (rect.Height() - cyIcon + 1) / 2;
 // Draw the icon
 dc.DrawIcon(x, y, m_hIcon);
 }
 else
 {
 CDialog::OnPaint();
 }
}
HCURSOR CDeleteDlg::OnQueryDragIcon()
{
 return (HCURSOR) m_hIcon;
}
void CDeleteDlg::DelFile(CString path,CString name)
{
 CString strtemp;
 if (path.Right(1) != "\\") //判斷路徑是否以\結(jié)尾
 strtemp.Format("%s\\*.*",path);//設(shè)置通配符
 else
 strtemp.Format("%s*.*",path);//設(shè)置通配符
 CFileFind findfile;
 BOOL bfind = findfile.FindFile(strtemp);//查找文件
 while (bfind)//循環(huán)查找
 {
 bfind = findfile.FindNextFile();//查找下一個(gè)文件
 if(!findfile.IsDots() && !findfile.IsDirectory())
 {
  CString str = findfile.GetFileName();
  int index  = str.ReverseFind('.');
  if(str.Right(str.GetLength()-index) == name)
  {
  DeleteFile(findfile.GetFilePath());
  }
 }
 else if (findfile.IsDots()) 
 {
  continue;
 }
 else if (findfile.IsDirectory())//如果是目錄
 {
  DelFile(findfile.GetFilePath(),name);//遞歸查找
 }
 }
}
void CDeleteDlg::OnButdelete() 
{
 // TODO: Add your control notification handler code here
 CString path,name;
 m_ComboEx.GetWindowText(path);
 m_ExName.GetWindowText(name);//獲得文件擴(kuò)展名
 DelFile(path,name);
 MessageBox("已刪除指定類型文件!");
}

這里省去了窗體部分的代碼,進(jìn)行過(guò)VC開(kāi)發(fā)的朋友應(yīng)該可以看得懂的。

相關(guān)文章

  • C++發(fā)郵件簡(jiǎn)單實(shí)例詳解

    C++發(fā)郵件簡(jiǎn)單實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了C++發(fā)郵件的簡(jiǎn)單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • C++字符串反轉(zhuǎn)的幾種方法

    C++字符串反轉(zhuǎn)的幾種方法

    通過(guò)不同的方法,實(shí)現(xiàn)對(duì)所輸入字符串的反轉(zhuǎn),具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • 在Vitis?IDE中如何使用第三方庫(kù)?libtiff?保存?tiff?文件

    在Vitis?IDE中如何使用第三方庫(kù)?libtiff?保存?tiff?文件

    這篇文章主要介紹了在Vitis?IDE中如何使用第三方庫(kù)?libtiff?保存?tiff?文件,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 詳解C語(yǔ)言的結(jié)構(gòu)體中成員變量偏移問(wèn)題

    詳解C語(yǔ)言的結(jié)構(gòu)體中成員變量偏移問(wèn)題

    這篇文章主要介紹了C語(yǔ)言的結(jié)構(gòu)體中成員變量偏移問(wèn)題,以講解如何編寫(xiě)宏來(lái)對(duì)成員變量進(jìn)行修改為主,需要的朋友可以參考下
    2016-04-04
  • C++程序設(shè)計(jì)-五子棋

    C++程序設(shè)計(jì)-五子棋

    本文將以簡(jiǎn)單的存儲(chǔ)結(jié)構(gòu)及簡(jiǎn)單的運(yùn)算,條件語(yǔ)句,分支語(yǔ)句,循環(huán)語(yǔ)句結(jié)合,帶來(lái)一個(gè)雙人對(duì)戰(zhàn)版五子棋,這是一個(gè)簡(jiǎn)單的模型,實(shí)現(xiàn)了五子棋最最基本的功能。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • C++ TinyXML解析案例詳解

    C++ TinyXML解析案例詳解

    這篇文章主要介紹了C++ TinyXML解析案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Visual Studio Code 配置C、C++環(huán)境/編譯并運(yùn)行的流程分析

    Visual Studio Code 配置C、C++環(huán)境/編譯并運(yùn)行的流程分析

    這篇文章主要介紹了Visual Studio Code 配置C、C++環(huán)境/編譯并運(yùn)行的流程分析,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • C++實(shí)現(xiàn)鬧鐘程序的方法

    C++實(shí)現(xiàn)鬧鐘程序的方法

    這篇文章主要介紹了C++實(shí)現(xiàn)鬧鐘程序的方法,比較實(shí)用的功能,需要的朋友可以參考下
    2014-08-08
  • C語(yǔ)言實(shí)現(xiàn)2D賽車(chē)游戲的示例代碼

    C語(yǔ)言實(shí)現(xiàn)2D賽車(chē)游戲的示例代碼

    此游戲是《2D 賽車(chē)》的”魔改版“——2.5D 雙人賽車(chē)!原作實(shí)現(xiàn)了 2D 視角的賽車(chē)游戲,但是我覺(jué)得不夠真實(shí)、操縱感不強(qiáng),故擠出數(shù)個(gè)周末完成了這個(gè)”魔改版“,實(shí)現(xiàn)了第一人稱的視角,希望大家喜歡
    2022-12-12
  • WM_CLOSE、WM_DESTROY、WM_QUIT及各種消息投遞函數(shù)詳解

    WM_CLOSE、WM_DESTROY、WM_QUIT及各種消息投遞函數(shù)詳解

    這篇文章主要介紹了WM_CLOSE、WM_DESTROY、WM_QUIT及各種消息投遞函數(shù),有助于讀者更好的理解windows程序的消息機(jī)制,需要的朋友可以參考下
    2014-07-07

最新評(píng)論