Warum os.link() nicht auch für Windows???

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mit http://code.google.com/p/simpledms/source/detail?r=21 hab ich nun eine funktionierende Variante.

Im Grunde steckt alles hier drin: http://code.google.com/p/simpledms/sour ... svn21&r=21

Ist noch alles mit der Heißennadel gestrickt.

Da es einfach mit win32file.CreateSymbolicLink nicht funktionieren will, benutzte ich nun per subprocess das sysinternal tool junction.exe.
Das dumme ist nur, das man es selber runterladen muß. Entweder packt man es dann in den Pfad oder ändert die Konstante os2.JUNCTION_EXE
In simpledms wird der pfad einmalig abgefragt und in die Config gespeichert.


Von der API her, kann man nach dem import von meinem "os2" Modul, das normale os.symlink und os.link auch unter Windows verweden. Sie Beispielcode ganz unten in os.py

Was haltet ihr vom "monkey patch" ?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lunar

jens hat geschrieben:Was haltet ihr vom "monkey patch" ?
Wenig, vor allem, wenn der Code noch instabil ist. Monkey-Patching verbirgt Abhängigkeiten und führt so dazu, dass Code schlechter zu durchschauen ist. Außerdem solltest du das wenn überhaupt mit einer Abfrage der Versionsnummer von Python verbinden, um zu verhindern, dass du Standardattribute überschreibst, wenn Python irgendwann mal Symlinks unter Windows unterstützt.

Ich würde eher eine zusätzliche Schicht einführen, die den Dateisystemzugriff noch weiter abstrahiert, und dort dann Symlink-Unterstützung für Windows implementieren, als direkt am os-Modul rumzupatchen.
Antworten