[xllimit19]
Maximale Länge des Dateinamens einer Arbeitsmappe
Zuerst sollte ich erwähnen, dass die
Microsoft-Spezifikation bezüglich Länge des Dateinamens einer Arbeitsmappe falsch
beziehungsweise zu ungenau ist. Die nachfolgende Abbildung zeigt eine Excel-Fehlermeldung,
in der steht, dass ein Dateiname nicht länger als 218 Zeichen sein darf (die
Fehlermeldung erscheint unter anderem, wenn man beim erstmaligen Speichern einer
Arbeitsmappe im "Speichern unter"-Dialogfenster einen zu langen Dateinamen
eingibt):

Abbildung: Fehlermeldung "Auf die Datei konnte nicht
zugegriffen werden"
Der Hinweis "Der Dateiname darf nicht länger sein als
218 Zeichen" verleitet den Leser zur Annahme, dass ein Dateiname von bis zu 218
Zeichen Länge ohne Probleme benutzt werden kann. Das stimmt jedoch nicht. Microsoft
benutzt hier das Wort "Dateiname" als Synonym für "Pfad- und
Dateiname". Korrekt ist, dass die maximale Länge des Dateinames vom Speicherort der
Datei abhängig ist.
Variable maximale Länge eines
Dateinamens
Je weniger Unterverzeichnisse beziehungsweise je
kürzere Verzeichnisnamen im Dateipfad verwendet werden, desto länger darf der Dateiname
der Arbeitsmappe sein.
In einem Test konnte ich eine Mappe nur dann auf dem Root
("D:\") einer Festplatte speichern, sofern der Dateiname nicht mehr als 215
Zeichen lang war:
218 Zeichen maximal erlaubt minus 3 Zeichen für "D:\" ergibt
215 Zeichen
Die Mappe konnte jedoch nicht mit dem gleichen 215 Zeichen
langen Dateinamen in einem Verzeichnis der Festplatte gespeichert werden. Bei Verwendung
des Speicherortes "D:\NeueDaten\XLimits" beispielsweise durfte der Dateiname
statt 215 Zeichen nur noch maximal 197 Zeichen lang sein. Warum das so ist, kann man sehr
einfach ausrechnen. Beachten Sie bitte, dass der Dateipfad immer mit dem Backslash-Zeichen
(\) abgeschlossen werden muss. Auch dieses Zeichen gehört zum Pfad. So wird die maximale
Länge des Dateinamens bei Speicherpfad "D:\NeueDaten\XLimits" berechnet:
218 Zeichen maximal erlaubt minus 21 Zeichen für
"D:\NeueDaten\XLimits\" ergibt 197 Zeichen
Auf diese Weise können Sie für jede beliebige Exceldatei
ausrechnen, wie lang ihr Dateiname in Bezug auf den verwendeten Speicherort sein darf.
Achtung: Probleme durch Ändern des Dateiablageortes und
des Dateinamens
Weil die maximale Länge eines Dateinamens keine fixe
Grenze besitzt, können in mehreren Situationen erhebliche Probleme auftreten. Angenommen
der Dateiname einer Mappe ist bereits sehr lang, erreicht die Limitation aber ganz knapp
nicht.
Folgende Aktionen verunmöglichen das anschliessende
Öffnen der Arbeitsmappe in Microsoft Excel (Liste nicht abschliessend):
Sie benennen die
Datei im Windows Explorer um, wobei Sie der Datei einen längeren Namen vergeben
(Beispiel: Bisher "Jahresbilanz.xls", neu "Jahresbilanz 2004.xls").
Sie verschieben
die Datei in ein anderes Verzeichnis, dessen Name länger als der Name des bisherigen
Verzeichnisses ist (Beispiel: Bisher "D:\Bilanzen", neu "S:\Backup\Alte
Bilanzen").
Sie verschieben
die Datei in ein Unterverzeichnis des bisherigen Verzeichnisses (Beispiel: Bisher
"C:\Daten\Excel\Buchhaltung", neu "C:\Daten\Excel\Buchhaltung\Sicherungskopien").
Sie benennen ein
Verzeichnis des Dateipfades um, wobei der neue Verzeichnisname länger als der bisherige
ist (Beispiel: Bisher "G:\Anwendungsdaten\Microsoft Office\Excel\Statistik", neu
"G:\Anwendungsdaten\Microsoft Office\Excel\Statistik Juni 2004").
Sie verschieben
die Datei auf ein anderes verbundenes Laufwerk, wobei der neue UNC-Pfad länger als der
bisherige ist (Beispiel: Bisher "\\Datenserver\Daten", neu "\\Datenserver\Gemeinsame
Daten").
Sie ändern den
Servername, wobei der neue Name länger als der bisherige ist (Beispiel: Bisher
"\\Backoffice\Daten", neu "\\Finanzbuchhaltung\Daten").
Sie ändern den
Namen ihres Benutzerprofil, wobei der neue Name länger als der bisherige ist, und die
Datei ist im "Anwendungsdaten"-Ordner abgelegt (Beispiel: Bisher
"C:\Dokumente und Einstellungen\Philipp\Anwendungsdaten\Microsoft\Excel", neu
"C:\Dokumente und Einstellungen\Philipp Meier\Anwendungsdaten\Microsoft\Excel").
Sie verwenden neu
eine direkte Verbindung zum Laufwerk, zum Beispiel eine IP-Adresse, einen UNC-Pfad oder
einen Freigabe-Namen (Share) anstelle des Laufwerkbuchstabens. Diese Angaben sind generell
länger als ein Laufwerkbuchstabe, welcher aus nur zwei Zeichen besteht (Buchstabe plus
Doppelpunkt).
Anmerkung zum Fehlermeldungstext
Ich muss zugeben, dass Microsoft den Text der oben
abgebildeten Fehlermeldung wirklich äusserst geschickt formuliert hat (auch wenn das sehr
wahrscheinlich nicht mit Absicht geschehen ist). Es steht nämlich lediglich, dass der
Dateiname nicht länger als 218 Zeichen sein darf, und nicht,
dass der Name maximal oder bis zu 218
Zeichen lang sein darf. Mathematisch ausgedrückt steht im Meldungstext also ">
218 = nicht erlaubt" und nicht "1 bis 218 = erlaubt". Das ist nicht
dasselbe. Microsoft hätte genau so gut auch "Der Dateiname darf nicht länger sein
als 500 Zeichen" schreiben können. Auch diese Angabe wäre grundsätzlich korrekt.
Auswirkungen bei Überschreiten der
Limitation
Wenn Sie versuchen, eine Arbeitsmappendatei zu öffnen,
deren Dateiname zu lang ist, erscheint diese Fehlermeldung:

Abbildung: Fehlermeldung "<Datei> wurde nicht
gefunden"
Wenn Sie versuchen, eine Arbeitsmappendatei zu speichern,
deren Dateiname zu lang ist, erscheint diese Fehlermeldung:

Abbildung: Fehlermeldung "Auf die Datei konnte nicht
zugegriffen werden"
Hinweis für VBA-Programmierer
Wenn Sie in einem VBA-Programm eine Mappe öffnen
(üblicherweise mit Workbooks.Open) oder eine Mappe unter einem anderen Namen
speichern (Workbooks.SaveAs), sollten Sie sicherheitshalber zuerst die Länge des
Pfad-/Dateinamens überprüfen. Hier ein exemplarisches Beispiel:
strPath = "C:\Daten"
strFilename = "MeineMappe.xls"
If Len(strPath & "\" & strFilename) > 218 Then
MsgBox "Der Pfad-/Dateiname darf nicht länger als 218 Zeichen
sein!"
Else
ActiveWorkbook.SaveAs strPath & "\" & strFilename
End If
Der obige VBA-Code gibt eine Meldung aus, wenn der
Pfad-/Dateiname zu lang ist. Ansonsten wird die Datei gespeichert.
Übrigens macht selbst Microsoft manchmal die
"schmerzliche" Erfahrung, dass die Überprüfung der Pfadlänge sinnvoll gewesen
wäre. Im Microsoft Knowledge Base-Artikel "Known issues with the Remove Hidden Data
add-in version 1.1 for Office 2003 and Office XP" (http://support.microsoft.com/?scid=kb;en-us;842684)
beispielsweise steht folgender Satz (Zitat):
| "If you run the Remove Hidden Data add-in
version 1.1 on a file that contains a file path that exceeds the limit of 218 characters
in Excel, the resulting file name is truncated or the tool may quit without cleaning the
file." |
Achtung: Probleme beim Erstellen von Dateiverknüpfungen!
Beachten Sie bitte, dass ein zu langer Dateiname zu
erheblichen Problemen führen kann. Ich hatte eine Dateiverknüpfung zu einer
Arbeitsmappendatei, deren Name 215 Zeichen lang war, auf dem Windows Desktop erstellt
(Windows NT 4.0). Nach der Erstellung war es nicht mehr möglich die Verknüpfung zu
löschen. Der Windows-Explorer zeigte bei jedem Löschversuch folgende Fehlermeldung:

Abbildung: Windows-Fehlermeldung "Datei kann nicht
gelöscht werden"
Die Datei liess sich auch nicht umbenennen. Das Verschieben
der Datei in einen anderen Ordner war schon gar nicht möglich, da bei jedem Versuch der
Windows Explorer abstürzte und den Dr. Watson erschienen liess. Es existierte nur eine
einzige Möglichkeit, die Datei loszuwerden: MS DOS-Fenster öffnen (COMMAND bzw. CMD),
ins Desktop-Verzeichnis wechseln und mit dem DEL-Befehl die Datei löschen, wobei der
kurze Dateiname (8.3) verwendet werden musste.
Doch warum liess sich die Verknüpfung nicht mehr löschen?
Ganz einfach: Der Desktop von Windows ist im Dateisystem ein gewöhnlicher Ordner. Auf
meinem Windows NT 4-Rechner heisst der Ordnerpfad
"D:\WINNT\Profiles\Administrator\Desktop". Die Länge dieses Pfades (plus ein
weiteres Backslash-Zeichen '\' am Ende des Pfades) beträgt 40 Zeichen. Der Dateiname war
215 Zeichen lang. Das gibt zusammen 255 Zeichen. Da Windows bei der Erstellung der
Verknüpfung automatisch die Dateinamenerweiterung ".lnk" anhängt, war der
gesamte Pfad-/Dateiname somit 259 Zeichen lang, mit anderen Worten zu lang für Windows.
MS DOS dagegen versteht auch kurze Namen, die das 8.3-Format besitzen. Daher war die
Löschung unter MS DOS erfolgreich.
Weitere Informationen
Weitere Informationen über die Länge von
Dateinamen erhalten Sie hier:

|