Controleren of een directory bestaat

Ruby:
Controleren of een directory bestaat

Hoe te:

In Ruby kun je de methode Dir.exist? gebruiken om te controleren of een map bestaat. Zo ziet het eruit:

if Dir.exist?("/pad/naar/map")
  puts "Map bestaat!"
else
  puts "Zo'n map bestaat niet."
end

Voorbeelduitvoer wanneer de map bestaat:

Map bestaat!

En wanneer dat niet zo is:

Zo'n map bestaat niet.

Diepere Duik

Historisch gezien heeft Ruby meerdere manieren geboden om met het bestandssysteem te interageren. Dir.exist? is nu een voorkeursmethode vanwege de duidelijkheid en eenvoud, maar oudere code kan File.directory? gebruiken. Beide methoden betekenen vrijwel hetzelfde en zijn min of meer inwisselbaar.

# Hetzelfde resultaat behalen met File.directory?
if File.directory?("/pad/naar/map")
  puts "Map bestaat!"
else
  puts "Zo'n map bestaat niet."
end

Waarom de redundantie? Het is een deel van Ruby’s principe om programmeurs meer dan één manier te bieden om iets te doen. Toch kan Dir.exist? worden beschouwd als een semantisch nauwkeurigere manier om specifiek naar mappen te zoeken.

Wat betreft de implementatie onder de motorkap, wanneer je Dir.exist? aanroept, vraagt Ruby het besturingssysteem om het bestandssysteem te controleren, dat controleert of het gespecificeerde pad naar een map wijst.

Wat alternatieven betreft, naast handmatige padcontrole, zou je ook de uitzonderingen kunnen vangen die het gevolg zijn van het proberen toegang te krijgen tot een niet-bestaande map. Dit wordt echter niet aanbevolen omdat het duurder is in termen van systeembronnen en minder duidelijk voor iemand die de code leest.

Zie Ook

Om verder in te gaan op Ruby’s bestands- en mapafhandeling, bekijk de volgende bronnen: