Vorteil (e) der Verwendung von Unterstrichen in Namenskonventionen für ArcGIS-Dateien?


11

In einem GIS-Einführungskurs wurde darauf bestanden, dass alle Leerzeichen in Datei- und Ordnernamen durch Unterstriche ersetzt werden.

Warum wird das gelehrt?

Gibt es einen klaren Vorteil davon?


3
Der Rat sollte nicht auf Räume beschränkt sein! Beachten Sie, dass Teile von ArcGIS Code enthalten, der bis in die 1980er Jahre zurückreicht (wenn nicht früher). Damals gab es schwerwiegende Einschränkungen bei Verzeichnis- und Dateinamen: Die von der Software angenommenen Namen waren kurz (normalerweise 13 Zeichen oder weniger), enthielten keine Sonderzeichen außer Leerzeichen und begannen nicht mit einer numerischen Ziffer. (Auch diese Beschreibung ist nicht genau richtig, aber sie ist nah.) Menschen stoßen immer noch auf mysteriöse Probleme, die auf diesen alten Code zurückzuführen sind.
whuber

@ Whuber ist knallhart. Es sind jedoch nicht nur Leerzeichen, Bindestriche, die -auch Probleme verursachen, weil sie manchmal in Ordnung sind und manchmal nicht. Sehen Sie eine Arcgisscripting-Methode zum Bereinigen eines Dateinamens?
Matt Wilkie

Antworten:


13

Ein Grund dafür ist, dass Leerzeichen in mehreren Programmier- / Skriptsprachen eine besondere Bedeutung haben.

Es ist eine gute Vorgehensweise, Dateien und Ordner mit Unterstrichen zu benennen, da dann die "" (Leerzeichen) von einigen Sprachen nicht als neue Zeile behandelt werden.

Beispiel - Ein Ordner mit dem Namen "GIS-Daten" ist ein falscher Ordnername. Dies liegt daran, dass ich die Leerzeichen mit besonderer Sorgfalt behandeln muss, wenn ich versuche, mit einem Skript oder einer Programmiersprache darauf zuzugreifen.

Wenn ich nicht sage, dass die Leerzeichen tatsächlich Leerzeichen und keine neuen Zeilen sind, wird versucht, auf "GIS" und "Daten" als separate Ordner zuzugreifen, dies ist jedoch nicht der Fall.

In Unix Bash über die Befehlszeile kann ich den Befehl ls verwenden, um die Dateien und Ordner in einem bestimmten Verzeichnis aufzulisten.

ls GIS Data

Ergebnis:

ls: GIS: No such file or directory
ls: Data: No such file or directory

Error!

Ich muss jetzt entweder Backslashes '\' oder Anführungszeichen '' verwenden, um zu verhindern, dass die Leerzeichen als Zeilenumbrüche behandelt werden!

ls '1 2 3' or ls 1\ 2\ 3

Die beiden obigen Befehle behandeln die Leerzeichen jetzt als Leerzeichen.

Einige ArcGIS-Geoverarbeitungswerkzeuge mögen keine Leerzeichen in Datei- oder Ordnernamen in einem beliebigen Teil des Pfads zur Datenquelle. Sie werden normalerweise nur mit einer Art generischem Fehler 99999 fehlschlagen.


11

Es gibt einige Geoverarbeitungswerkzeuge, die fehlschlagen, wenn die Dateinamen Leerzeichen enthalten. Daher ist es am besten, sie alle zusammen zu vermeiden.


3
In der Esri-Software tolerierten Coverages und Rasterdateien niemals Leerzeichen in den Namen. Das Platzieren von Datensätzen auf einem Windows-Desktop war / ist problematisch, da der Ordner tatsächlich auf "Dokumente und Einstellungen" basiert (wodurch Leerzeichen in den gesamten Pfadnamen eingefügt werden). Shapefiles sind viel verzeihender und Leerzeichen sind möglich, und ich glaube, Feature-Classes können jetzt ein Leerzeichen haben und nicht abstürzen, aber alte Gewohnheiten sterben schwer. Ich stimme Jeff Berry zu - am besten, um sie zu vermeiden.
Dianamaps

2

Einfach ausgedrückt: Leerzeichen in Befehlszeilen werden an Trennzeichen behandelt. So:

delete C:\directory\file number 1.shp

funktioniert in den meisten Befehlszeilen des Betriebssystems nicht ohne Anführungszeichen:

delete "C:\directory\file number 1.shp"

Viele GIS-Tools basieren auf der Befehlszeile, daher ist es einfacher, Unterbewertungen zu verwenden, wenn Sie sich in einer Umgebung befinden, in der die Befehlszeile häufig verwendet wird. Wenn Sie nur ein Windows-Benutzer sind, können Sie wahrscheinlich davonkommen, indem Sie nur Leerzeichen in lassen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.