只是想删个文件而已~

在桌面用完vim之后总会生成几个缓存文件,很是碍眼,糟蹋了干净的桌面,于是想编个代码来吧这一系列没用的文件删了,保持桌面的整洁。过程是辛酸的,代码一开始就写出来了,但是一运行程序,桌面没有任何改变,那些碍眼的文件还在!通过perror("remove");了解到是Permission denied,没有权限,之后就是获取权限之路了。。。

一开始,看文件属性,不是“只读”状态,用chmod()改权限(之前不知道c语言有这个函数,只知道用system()函数)chmod()函数需要#include <sys/types.h>和#include <sys/stat.h>,system()需要#include<stdlib.h>,之前还忘了加上:

infile.close();
infile1.close();

之后加上了还是没有任何变化,感觉已经把能想到的可能存在的问题都想出来了,最后google关键字“c语言remove() permission denied”吧,从http://bbs.csdn.net/topics/300084249得知,remove()不能删除c盘的文件,也不知道为什么,后来通过桌面的“属性”把桌面挂载在到D盘根目录下,还是不行,:(  ,不玩了再见


哈哈,最终还是可行的,把桌面挂载到D盘后,在再桌面新建个文件夹(我把它命名为9了,这样在dos下好进入这个文件夹),把那些东西放里面,在这个文件夹里面,程序运行时没有问题的,哈哈




现在桌面是不是干净多了啊大笑


#include <iostream>

#include <cstdio>
#include <cstring>
#include <fstream>
#include <sys/types.h>
#include <sys/stat.h>
#define MAX 50
using namespace std;

char a[MAX][MAX],b[MAX][MAX];

int main()
{
ifstream infile("LIST.TXT"),infile1("LIST.bat");
for(int i=0;i<MAX;i++)
{
infile>>a[i];
infile1>>b[i];
}
for(int i=0;i<MAX;i++)
{
int flag=0;
for(int j=0;j<MAX;j++)
{
if(strcmp(b[i],a[j])==0) flag=1;
}
if(!flag) {chmod(b[i],777);cout<<b[i]<<endl;cout<<remove(b[i])<<endl;perror("remove");}
}
infile.close();
infile1.close();
getchar();
return 0;

}


windows批处理文件:

filenam.bat

DIR *.*  /B >LIST.bat    可生成一个当前目录下包含所有文件名的LIST.bat文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值