微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试删除文件时获取权限被拒绝错误

首先嗨大家好,

我的问题是,我的程序创build一个文件,这是由另一个程序读取和帽子后,我的程序应该删除文件

我使用下面的代码检查文件是否存在以及是否有其他程序使用该文件。 之后,我想删除文件

if(isFileRdy("C:\test\foo.txt"))remove("C:\test\foo.txt");

有没有人有任何想法,问题可能在哪里。 有趣的是,这适用于其他文件。 而foo.txt也是由这个程序创build的,没有特殊的访问权限。

检测为什么要从服务器上删除文件

即使用户正在浏览文件夹,也要删除文件/文件夹。

在c中删除一个可能被locking的文件

在Windows cmd上recursion删除文件文件

Windows删除通配符不正常删除

谢谢 :)

/* just suppose the things with argc and argv work,I kNow it's uggly but I need it as a call back function later in the code */ BOOL isFileRdy(char *filePath) { int argc = 1; void *argv[1]; argv[0]= (void*) filePath; return isFileRdyCBF(argv,argc); } BOOL isFileRdyCBF(void *argv[],int argc) { /* I used */ char *filePath = (char*) argv[0]; FILE *fDes = NULL; BOOL _fileExists = FALSE; BOOL _fileBussy = TRUE; _fileExists = fileExists(filePath); if(_fileExists) { fDes = fopen(filePath,"a+"); if(fDes!=NULL) { _fileBussy = FALSE; if(fclose(fDes)!=0) { printf("nERROR Could not close file stream!"); printf("n '%s'nn",filePath); return FALSE; } } } return (_fileExists==TRUE && _fileBussy==FALSE) ? TRUE : FALSE; }

使用批处理脚本查找并删除驱动器上每个文件夹中的desktop.ini文件

删除2级子文件夹,但保留1级子文件

如何使batch file自己删除

这个bash脚本有多危险?

文件删除时,检测python中的破碎stream

这似乎是有问题的行(鉴于这是从int main(int argc,char **argv)的片段:

char *filePath = (char*) argv[0];

在这里,您将程序可执行文件分配给filePath,但不是该程序的第一个参数。 第一个参数在argv[1] ,但是您必须首先检查argc >= 2 。

当您尝试通过静态路径条目删除文件时,您必须使用第二个字符 s:

remove("C:\test\foo.txt");

你说它适用于其他文件。 这些适合你的路径是什么样的? 你的整个问题可能是你没有正确使用反斜杠。

在C中, t 表示制表符 。 所以你写了C:<TAB>test 。 要在C中实际表示反斜杠字符 ,您需要编写\ 。 (这个在各种字符之前加反斜杠的表示特殊的代码叫做“转义”)。

例如,而不是remove("C:testfoo.txt"); 你会写remove("C:\test\foo.txt");

这也应该工作: remove("c:/test/foo.txt"); 因为Windows也可以接受正斜杠/而不是路径中的反斜杠 。

还有Rudi对argv 所说的话。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐