удаление файла в NTFS с помощью c - PullRequest
0 голосов
/ 09 марта 2011

Как я могу удалить файл на диске NTFS? Я попытался удалить файл и удалить, но ни один не работал. Есть предложения?

do { 
  char* nPtr = new char [lstrlen( data.cFileName ) + 1]; 

  for( int i = 0; i < lstrlen( data.cFileName ); i++ ) 
    nPtr[i] = char( data.cFileName[i] ); 

  nPtr[lstrlen( data.cFileName )] = '\0'; 

  if(!strcmp(nPtr , fn)) 
    remove(nPtr); 

  cout << nPtr << endl; 
}

спасибо arefin

Ответы [ 2 ]

8 голосов
/ 09 марта 2011

Звонок на DeleteFile() работает, и в вашем случае это сработало.

DeleteFile() заключен договор на удаление указанного вами файла, если он может быть удален. Если файл может быть удален, то он будет. Если файл не может быть удален, он не будет.

Если DeleteFile() возвращает значение false, что в документации называется ошибка , то файл не был удален по уважительной причине. Вы можете позвонить GetLastError(), чтобы узнать, почему файл не был удален.

3 голосов
/ 09 марта 2011

«не работает» может произойти из-за ошибки в параметре (путь указан неверно) или из-за отсутствия прав на удаление файла или из-за того, что файл используется.Разрешения разные по этим причинам.Вы можете проверить, в чем именно заключается проблема, проверив, возвращает ли DeleteFile () значение false, а затем вызвав функцию GetLastError (), чтобы получить код ошибки.Коды ошибок:

2 - файл не найден 3 - путь не найден 5 - доступ запрещен 87 - неверный параметр

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