Frage

Ich bin mit Ruby on Windows-obwohl ich weiß nicht, ob das einen Unterschied machen sollte. Alles, was ich tun möchte, ist das aktuelle Arbeitsverzeichnis des absoluten Pfad zu bekommen. Ist dies möglich, von irb? Offenbar aus einem Skript File.expand_path(__FILE__) ist es möglich mit

Aber von irb habe ich versucht, die folgende und bekam ein „Zugriff verweigert“ Fehler:

File.new(Dir.new(".").path).expand
War es hilfreich?

Lösung

Andere Tipps

File.expand_path File.dirname(__FILE__) wird das Verzeichnis in Bezug auf die Datei zurückgeben dieser Befehl aus aufgerufen wird.

Aber Dir.pwd kehrt das Arbeitsverzeichnis (Ergebnisse identisch pwd in Ihrem Terminal ausgeführt wird)

Wie für den Pfad relativ zum aktuellen ausgeführten Skripts, da Ruby-2.0 Sie können auch verwenden

__dir__

Das ist also im Grunde das gleiche wie

File.dirname(__FILE__)

Dies wird Ihnen das Arbeitsverzeichnis der aktuellen Datei.

File.dirname(__FILE__)

Beispiel:

current_file: "/Users/nemrow/SITM/folder1/folder2/amazon.rb"

Ergebnis: "/ Users / nemrow / SITM / folder1 / folder2"

Wenn Sie den vollständigen Pfad des Verzeichnisses der aktuellen rb Datei erhalten möchten:

File.expand_path('../', __FILE__)

Durch diesen können Sie absoluten Pfad jeder Datei in einem beliebigen Verzeichnis erhalten.

File.join(Dir.pwd,'some-dir','some-file-name')

Dies wird wieder

=> "/User/abc/xyz/some-dir/some-file-name"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top