«Ошибка удаления файла: отказано в разрешении» с удалением в C ++ - PullRequest
7 голосов
/ 23 августа 2010

Когда я компилирую и запускаю свою программу на 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 в командной строке, это работает.

Weird ...

Ответы [ 3 ]

3 голосов
/ 24 августа 2010

Вы приводите точно такой же пример, перечисленный в Cplusplus , поэтому, если программа не работает, я думаю, что это проблема, связанная с ОС.

Если вы используете Windows 2kили больше, попробуйте API DeleteFile и посмотрите, не происходит ли такая же ошибка.

Я не могу добавить комментарии к вопросу, поэтому, извините, если это неправильный ответ.

Убедитесь, что файл не открыт.Попробуйте создать новый файл из вашей программы и удалить его.

0 голосов
/ 06 января 2016

Может быть, у вас нет разрешения изменять файлы в этом месте из кода вашей Visual Studio.

У меня была эта проблема, и я изменил расположение файла, и у меня не было больше проблем.

0 голосов
/ 24 августа 2010

Я думаю, std::remove() принимает путь в качестве параметра.Таким образом, нам нужно указать весь путь в качестве параметра для remove функции.

например: remove("home/xxx/example.txt");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...