Hallo,
(1) Ich habe mal gelernt, dass bei Dateibezeichnungen innerhalb von HTML-Projekten Leerzeichen und deutsche Umlaute zu vermeiden sind. Außerdem solle man stets nur Kleinbuchstaben benutzen. – Handelt es sich hierbei um Regeln, die von HTML vorgegeben werden oder bloß um Konventionen, die sich quasi als Stil entwickelt haben?
mit HTML hat das nichts zu tun; es sind tatsächlich Konventionen, die sich aus dem Wunsch nach größtmöglicher Kompatibilität verschiedener Systeme untereinander ergeben.
Für HTTP-Ressourcennamen gelten teilweise wieder andere Kriterien - hier sind beispielsweise Zeichen wie '*' erlaubt, Leerzeichen dagegen nicht, und Zeichen mit Codes >0x7F sind problematisch, solange deren Codierung nicht eindeutig ist.
(2) Ist man unter Windows eigentlich völlig frei, was die Gestaltung von Dateinamen angeht?
Weitgehend, ja. Es gibt ein paar Zeichen, die aufgrund ihrer Sonderbedeutung in Dateinamen nicht erlaubt sind, du hast sie unten bereits aufgezählt.
Meines Wissens nach ja: ich gehe davon aus, dass man sowohl mehrere Leerzeichen als auch mehrere Punkte, als auch Umlaute innerhalb eines eines Dateinamens verwenden darf – sowie auch alle Satz- und Sonderzeichen mit Ausnahme von < > ? " : | \ / *
Soweit ich weiß, sind auch Steuerzeichen (Codes <0x20) nicht zulässig, da bin ich aber nicht ganz sicher. Bliebe noch festzuhalten, dass Windows zwar Groß- und Kleinbuchstaben exakt wiedergibt, aber bei Namensvergleichen als gleich betrachtet. Während unter Unix-artigen Systemen also die Dateien Test.txt und test.txt unterschiedlich sind und daher beide in demselben Verzeichnis existieren können, betrachtet Windows die beiden Dateinamen als gleich. Beim Anlegen von test.txt wird daher eine möglicherweise vorhandene Test.txt kommentarlos[1] überschrieben.
So long,
Martin
[1] Einige Dateimanager, so auch der Windows-Explorer, prüfen vorher selbst, ob eine gleichnamige Datei schon existiert. Das Betriebssystem tut das aber nicht.
Kleine Geschenke erhalten die Freundschaft.
Große verderben sie aber meist auch nicht.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(