将【
C:\\Users\\HDaniel\\Desktop\\br
】文件夹下的所有jpg图片文件缩放到高度为100像素,再保存到工程目录下。
遍历文件夹:#include <io.h>#include <Windows.h>#include <ctime>#include <fstream>#include<iostream>#include "string.h"#include <opencv2/opencv.hpp>
void mian{_finddata_t info[500];//该文件夹最多有500个文件long handlefirst;//储存findfirst返回的句柄int i=0;//计数器handlefirst= _findfirst("C:\\Users\\HDaniel\\Desktop\\br\\*.jpg",&info[0]);//找到文件夹中第一个文件,成功赋0,没有文件赋-1if(handlefirst == -1)//没有文件{cout<<"文件夹可能为空!"<<endl;}do{cout<<"文件名"<<info[i].name<<endl<<"正在缩放..."<<endl;char filename[200];strcpy(filename,"C:\\Users\\HDaniel\\Desktop\\br\\");strcat(filename,info[i].name);
IplImage* img=cvLoadImage(filename,1);cvSaveImage("tst.jpg",img);IplImage* img_resize=cvCreateImage(cvSize(100,(int)((img->height)*100/(img->width))),img->depth,img->nChannels);cvResize(img,img_resize);cvSaveImage(info[i].name,img_resize);
i++;//计数器自增cvReleaseImage(&img);cvReleaseImage(&img_resize);
}while(_findnext(handlefirst,&info[i])==0);
return 0;}
删除文件夹及所有内容:void myDeleteDirectory(CString directory_path) //删除一个文件夹下的所有内容{CFileFind finder;CString path;path.Format("%s/*.*",directory_path);BOOL bWorking = finder.FindFile(path);while(bWorking){bWorking = finder.FindNextFile();if(finder.IsDirectory() && !finder.IsDots()){//处理文件夹myDeleteDirectory(finder.GetFilePath()); //递归删除文件夹RemoveDirectory(finder.GetFilePath());}else{//处理文件DeleteFile(finder.GetFilePath());}}}void DeleteAllDirectory() //删除文件夹 包括非空的文件夹
{
//第一步 删除 该文件夹下所有文件
myDeleteDirectory("C:/ForVcTest");
//第二步 删除该空文件夹
RemoveDirectory("C:/ForVcTest");
}
如指定文件夹存在,清空文件夹中文件,否则,创建文件夹#define directory_path "C:\\CR_temp"if (PathFileExists(directory_path)) //判断文件夹是否存在
{
CFileFind finder;
CString path;
path.Format("%s\\*.*",directory_path);
BOOL bWorking = finder.FindFile(path);
while(bWorking)
{
bWorking = finder.FindNextFile();
//处理文件
DeleteFile(finder.GetFilePath()); //逐个删除文件
}
}
else
{
if (!CreateDirectory(directory_path,NULL)) //创建文件夹
{
AfxMessageBox("用于存放结果图片的文件夹创建失败!");
}
}