遍历/删除文件夹文件实例

将【 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,没有文件赋-1
if(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("用于存放结果图片的文件夹创建失败!");
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在阿里云 OSS 上修改文件夹文件名字可以通过以下两种方式实现: 1. 使用阿里云 OSS SDK 进行操作 可以使用 Java SDK 或其他语言的 SDK 连接 OSS,然后调用相应的 API 实现文件文件夹的修改。 例如,使用 Java SDK 修改文件名: ```java // 创建 OSSClient 实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 修改文件名。 ossClient.copyObject(bucketName, oldKey, bucketName, newKey); // 删除文件。 ossClient.deleteObject(bucketName, oldKey); // 关闭 OSSClient。 ossClient.shutdown(); ``` 使用 Java SDK 修改文件夹名: ```java // 创建 OSSClient 实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 列出需要修改的文件夹下的所有文件。 ObjectListing objectListing = ossClient.listObjects(bucketName, oldPrefix); // 遍历所有文件并修改其 Key。 for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) { String oldKey = objectSummary.getKey(); String newKey = oldKey.replace(oldPrefix, newPrefix); ossClient.copyObject(bucketName, oldKey, bucketName, newKey); ossClient.deleteObject(bucketName, oldKey); } // 删除文件夹。 ossClient.deleteObject(bucketName, oldPrefix); // 关闭 OSSClient。 ossClient.shutdown(); ``` 2. 使用 OSS 控制台进行操作 在阿里云 OSS 控制台中,可以直接对文件文件夹进行重命名和移动操作。具体步骤如下: - 登录阿里云 OSS 控制台,选择需要修改的 Bucket。 - 在 Bucket 列表中找到需要修改的文件文件夹,点击其右侧的“更多操作”按钮,在弹出的菜单中选择“重命名”或“移动”。 - 输入新的文件名或新的文件夹路径,点击“确定”按钮即可完成修改。 注意,使用控制台进行文件文件夹的修改可能不如使用 SDK 灵活和便捷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值