2010-08-23 8 views
6

entfernen Wenn wir kompilieren und mein C++ Programm ausführen, das eine Datei namens example.txt löscht (siehe unten)„Fehlerdatei zu löschen: Zugriff verweigert“ mit in C++

#include <stdio.h> 

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

Es kommt wie folgt aus ...

Ich hob alle Einschränkungen für die Datei und es gibt den vollen Zugriff auf alle (das sollte mein Programm enthalten).

Irgendwelche Lösungen?

EDIT

Als ich in del example.txt auf Befehl eingeben Prompt es funktioniert.

Sonderbare ...

+0

Nun, ich habe eine Verknüpfung, die eine Batch-Datei öffnet, die das Programm so läuft ja ... –

+1

Was ist die Fehlermeldung? perror sollte Ihnen eine Fehlermeldung geben. Es gibt nichts direkt nach Ihrer "es kommt so aus" -Linie. Können Sie diese Datei in einer Befehlszeile löschen? – EboMike

+0

Was passiert, wenn Sie anstelle von 'app.exe' 'del example.txt' in der Eingabeaufforderung eingeben? –

Antwort

0

Ich denke, std::remove() nimmt den Weg als Parameter. Also müssen wir den gesamten Pfad als Parameter für remove Funktion angeben.

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

+1

Ich habe es versucht und es hat mir nicht geholfen. – STF

3

Sie sind genau das gleiche Beispiel in Cplusplus so aufgelistet geben, wenn das Programm nicht funktioniert, ich denke, es ist ein O.S Verwandte Problem.

Wenn Sie Windows 2k oder höher verwenden, versuchen Sie the DeleteFile api und schauen, ob der gleiche Fehler passiert.

Ich kann keine Kommentare zu der Frage hinzufügen, also, tut mir leid, wenn dies keine richtige Antwort ist.

Vergewissern Sie sich, dass die Datei nicht geöffnet ist. Versuchen Sie, eine neue Datei von Ihrem Programm zu erstellen und sie zu löschen.

0

Möglicherweise sind Sie nicht berechtigt, Dateien an diesem Ort von Ihrem Visual Studio-Code zu ändern.

Ich hatte dieses Problem und ich änderte den Speicherort der Datei und als ich kein Problem mehr hatte.