Dies ist eine gute Frage. Und du hast dort eine großartige Lösung! Sie wollen wahrscheinlich bei dieser Methode bleiben. Ich habe nie auf diese Weise, ich muss es auf Mac/* nix testen, um sicherzustellen, aber es klingt wie es sollte funktionieren, als ob eine Datei verwendet wird, sollte es nicht beweglich sein. Ich habe damit vor ein paar Jahren gekämpft.
Auch eher dann bewegen, können Sie eine Umbenennung tun. Das Umbenennen ist dasselbe wie OS.File.move
, aber in dasselbe Verzeichnis.
Der Nicht-Trick Weg erfordert js-ctypes:
Unter Windows Sie diese OS.File.open
tun kann, und wenn das nicht klappt, dann ist es offen. Wenn es gelingt, stellen Sie sicher, .close()
wie es nicht von anderen verwendet wurde. Dies funktioniert nicht auf mac/* nix, da open
alles öffnen kann.
auf Mac/* nix Sie haben open
verwenden dann fcntl
dann close
über js-ctypes wie ich hier tat: https://github.com/Noitidart/Profilist/blob/219f225643828a000c60d01ea212505bb0817ff5/modules/workers/MainWorker.js#L1313
Sie können in derselben Funktion in dem obigen Block sehen, wenn es von Windows, was ich tun die OS.File.open
. Mein Code hier ist etwas komplizierter, weil ich auch die pid
des Prozesses, der es geöffnet hat.
Ich definierte all dies in der ostypes
lib - https://github.com/Noitidart/ostypes - Sie können das importieren und sofort verwenden.
Dies funktioniert nur für Windows. In Linux/Unix wird es nicht. Siehe meine Lösung unten. – Noitidart