c/c++创建删除文件操作

最近温习C语言功课,一直为返回字符串数组问题所困扰,网搜无完整应用信息,不得其法,经过不断实践修改,略有所悟,记录如下:

/* run this program using the console pauser or add your own getch, system("pause") or input loop 
 program:create_delete_file.cpp
 written by adengou 
 date:2018-05-01
 ide:dev c++ 5.11
 application:为处理返回字符串数组问题提供参考
*/
#include <iostream>
#include <windows.h>
#include <string>


char  **funFilePath(char** arrFilename,int nLength);

int   createFile(char *contentTxt,int nLength);


int  deleteFile(int nLength);


int  main(int argc, char** argv) {
 char contentTxt[512]="written by adengou";//写入文件的内容 
 int nLength = 10;//创建10个文件 
  createFile(contentTxt,nLength);//创建文件 
  deleteFile(nLength);//删除文件 
  system("pause");
  return 0;
}
//设置批量文件 
char  **funFilePath(char** arrFilename, int nLength)
{
char Path[255];
char FileName[255];
    for(int i=0;i<nLength;i++) {
GetCurrentDirectory(sizeof(Path),Path);
wsprintf(FileName,"\\%d.txt",i);//创建文件名 
strcat(Path,FileName);
arrFilename[i]=(char *)malloc(255);/*增开动态内存保存字符串,外部函数读取完毕记得free(arrFilename[i]);释放内存 */ 
strcpy(arrFilename[i],Path);
}
   //printf("%s\n",arrFilename[i]);//test
   return arrFilename;

}
//批量创建文件 
int  createFile(char *contentTxt,int nLength){
    //int nLength = 10;
    char* arrFilename[nLength];
    funFilePath(arrFilename,nLength);
    //printf("%d\n",sizeof(arrFilename)/sizeof(char**));//字符串数组个数 
    for(int i=0;i<sizeof(arrFilename)/sizeof(char**);i++) {
HANDLE hFile;
hFile = CreateFile(arrFilename[i],GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile==INVALID_HANDLE_VALUE){
continue;
}

DWORD dwWrite;
WriteFile(hFile,contentTxt,strlen(contentTxt),&dwWrite,NULL);//创建文件并写入内容 
printf("%s----创建成功!\n",arrFilename[i]);
CloseHandle(hFile);
free(arrFilename[i]);//释放内存

}
//memset(arrFilename,0x00,255);//清空数组内容 
return 0;
 

}
//批量删除文件 
int  deleteFile(int nLength){
char* arrFN[nLength];
    funFilePath(arrFN,nLength);
    //printf("%d\n",sizeof(arrFilename)/sizeof(char**));//字符串数组个数 
    printf("开始删除文件:\n"); 
    for(int i=0;i<sizeof(arrFN)/sizeof(char**);i++){
    
   if( remove(arrFN[i]) == 0 )
       printf(" %s 文件删除成功!\n", arrFN[i]);
   else
       perror("remove");
       
   free(arrFN[i]);//释放内存
}
 
//memset(arrFN,0x00,255);//清空数组内容
 
return 0;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值