Ich versuche, einen Detektor zu schreiben, der prüft, ob ein bestimmtes Verzeichnis mit sheltil.rmtree gelöscht werden kann. Ich habe einen Teilcode fertiggestellt wie unten, der jetzt teilweise funktioniert.Python: Verzeichnis, das in Windows 7 nicht erkannt werden kann
Dieser Code kann jetzt warnen, wenn alle .exe-Dateien unter dem Zielordner noch ausgeführt werden. Aber dieser Code kann Warnungen noch nicht kennzeichnen, wenn eine bestimmte Datei in einem Ordner von einem Editor geöffnet wird (was ein weiterer Grund ist, der ein Verzeichnis nicht löschbar macht). Jede Anleitung wird geschätzt. Vielen Dank im Voraus
Hinweis: Ich habe die offene Methode verwendet, um nach gesperrten Dateien zu suchen.
def list_locked_files(dir):
isLocked = False
for name in os.listdir(dir):
uni_name = unicode(name)
fullname = dir + u'/' + uni_name
if os.path.isdir(fullname):
list_locked_files(fullname)
else:
try:
f = open(fullname, 'r+')
f.close()
except IOError:
print fullname + u' is locked!'
isLocked = True
if isLocked is True:
print u'Please close the files/dir above !'
sys.exit(0)
Sie sollten einfach die Systemdatei löschen, dann überprüfen Sie, ob die Datei noch da ist. (Das ist ein Witz, tue das nicht wirklich :)) –
Meinst du "löschen" (beides mal) anstatt "erkennen" im Fragetitel? –
Wenn ich Ihre Frage richtig verstehe, ist das erste Mal zu erkennen (das ist die Frage, die ich eine Antwort finden möchte). Dann ist das zweite Mal zu löschen (das habe ich schon gelöst – Daniel