Home HomeXLimits - Hauptseite


[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):

Fehlermeldung "Dateiname ist zu lang"
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:

Fehlermeldung "Datei wurde nicht gefunden"
Abbildung: Fehlermeldung "<Datei> wurde nicht gefunden"

Wenn Sie versuchen, eine Arbeitsmappendatei zu speichern, deren Dateiname zu lang ist, erscheint diese Fehlermeldung:

Fehlermeldung "Dateiname ist zu lang"
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:

Windows-Fehlermeldung "Fehler beim Löschen der Datei"
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:

Weitere Informationen

Dateilimitationen: Länge von Dateinamen

 

  Verwandte Limitation: Länge des Dateinamens einer verknüpften Arbeitsmappe
  Verwandte Limitation: Maximale Länge von Formeln

To Top

Seiten-Info

Artikel-ID xllimit19
Limitation-ID 73

 

Verwandte Limitationen

Artikel-ID xllimit4
xllimit14
Limitation-ID 10, 76,
173, 174

 

Links

Liste der Limitationen-Artikel
Liste der Excel-Limitationen
Liste der Excel-Seiten
XLimits (Home)
xlam (Home)

Haben Sie Fragen, Anregungen oder einen Fehler entdeckt?
Kontakt zum Autor

Zuletzt aktualisiert am 1.09.2004 / 22:15 Uhr
Zuletzt kontrolliert am 22.12.2008 / 07:00 Uhr
© 2002-2009 by Philipp von Wartburg, Schweiz
Alle Rechte vorbehalten