Verknüpfung löschen? / Variable errno?
-
Ich möchte eine Verknüpfung löschen.
Ich hab das mit _unlink versucht, das funktioniert aber nicht.
Der Pfad zum löschen stimmt (Ich hab die Funktion zum Verknüpfung so umgeschrieben, dass sie den den Pfad der grad erstellten Verknüpfung in eine Datei reinschreibt. Später lese ich den Pfad aus, und versuche die Verknüpfung dann zu löschen.).Gibt es noch andere Funktionen, mit den man das machen kann??
Und wie verwende ich die Variable errno??
-
Also wenn es Dir nur darum geht eine 'Verknüpfungs-Datei' zu löschen (*.lnk), schonmal DeleteFile probiert ?
-
errno ist eine Variable! Es ist einfach ein Zahlenwert.
if (errno==EACCESS) cout << "Datei schreibgeschützt";Was sagt errno nach _unlink?
Aber wie gesagt DeleteFile ist das selbe...
-
Also das funzt weder mit DeleteFile, noch mit _unlink.
Und das mit der Variable errno krieg ich nich hin:FILE *file=fopen((absoluter_pfad + "lnk.ini").c_str(),"r"); char row[999999]; while(fgets(row,999999,file)){ Application->MessageBox(row,"",1); DeleteFile(row); if (errno==EACCESS) //Undefined Symbol 'EACCESS' cout << "Datei schreibgeschützt"; } fclose(file);In der Datei stehen die korrekten Pfade (Hab ich mir ausgeben lassen, die stimmen!).
-
Will DeleteFile() über GetLastError() auch nichts mitteilen?
-
Könnte es sein, dass am Ende von absoluter_pfad ein Backslash fehl?
-
@geeky:
GetLastError gibt als fehlercode 123 zurück:TCHAR szbuffer[50]; sprintf(szbuffer,TEXT("error: %d"),GetLastError()); MessageBox(NULL,szbuffer,TEXT("Warnung"),MB_ICONERROR);error:123@Martin Richter:
Es fehlt kein Backslash.Habs rausgefunden:
Die Pfadangaben werden in der Textdatei gespeichert.
Beim auslesen mit fgets wird der Zeilenumbruch mit übergeben.
Mit der StringList werden diese nicht übergeben:TStringList *verknuepfung; verknuepfung = new TStringList; verknuepfung->LoadFromFile(absoluter_pfad + "lnk.ini"); DeleteFile(String(verknuepfung->Strings[0]).c_str()); DeleteFile(String(verknuepfung->Strings[1]).c_str()); DeleteFile(String(verknuepfung->Strings[2]).c_str()); rmdir(String(verknuepfung->Strings[3]).c_str());