“删除文件时出错:权限被拒绝”,在C ++中删除

时间:2010-08-23 17:06:27

标签: c++ windows file-io

当我编译并运行我的C ++程序时删除一个名为example.txt(下面)的文件

#include <stdio.h>

int main ()
{
  if( remove( "example.txt" ) != 0 )
    perror( "Error deleting file" );
  else
    puts( "File successfully deleted" );
  return 0;
}

它就像这样......

cd c:\Users\Mark\Desktop  
C:\Users\Mark\Desktop>app.exe  
Error deleting file: Permission denied  

我取消了对该文件的所有限制,并且可以完全访问任何人(应该包括我的程序)。

任何解决方案?

编辑

当我在命令提示符下键入del example.txt时,它可以正常工作。

...怪异

3 个答案:

答案 0 :(得分:3)

您正在提供Cplusplus中列出的完全相同的示例,因此,如果该程序不起作用,我认为这是一个O.S相关问题。

如果您使用的是Windows 2k或更高版本,请尝试the DeleteFile api并查看是否发生了同样的错误。

我无法在问题上添加评论,所以,对不起,如果这不是一个正确的答案。

确保您没有打开文件。尝试从程序中创建一个新文件并将其删除。

答案 1 :(得分:0)

我猜std::remove()将路径作为参数。因此,我们需要将整个路径指定为remove函数的参数。

例如:remove("home/xxx/example.txt");

答案 2 :(得分:0)

也许您无权从Visual Studio代码更改此处的文件。

我遇到了这个问题,我改变了文件位置,而不是没有问题。