Discussion:
Dateiname zu lang - Datei lässt sich nicht löschen
(zu alt für eine Antwort)
Gerold Mittelstädt
2009-06-24 18:54:58 UTC
Permalink
Hallo,

bin dabei meine Festplatten auszumisten und habe jetzt folgendes Problem:

Es gibt eine Datei, die ich weder öffnen, umbenennen, verschieben, oder
löschen kann. Windows ignoriert entsprechende Befehle über die Tastatur
(bzw. bietet es im Kontextmenü garnicht an - genau wie die
Dateieigenschaften), die Konsole meint dazu "Dateiname oder Erweiterung
zu lang."

Nur: wie kann das sein? Im Explorer (bzw. in der Konsole) wird die Datei
normal angezeigt. Selbst die Dateigröße ist plausibel. Dateiname inkl.
Erweiterung sind 141 Zeichen, der Pfad dort hin hat 127. Dateisystem ist
NTFS, und somit müsten ja eigentlich 255 Zeichen im Dateinamen sowie
32767 Zeichen im Pfad möglich sein. Und irgendwann hat Windwos ja auch
mal die Erstellung an diesem Ort zugelassen.

Wie bekomme ich jetzt also wieder Zugriff auf die Datei?
--
Viele Grüße!
Hermann
2009-06-24 19:21:14 UTC
Permalink
Post by Gerold Mittelstädt
Es gibt eine Datei, die ich weder öffnen, umbenennen, verschieben, oder
löschen kann. Windows ignoriert entsprechende Befehle über die Tastatur
(bzw. bietet es im Kontextmenü garnicht an - genau wie die
Dateieigenschaften), die Konsole meint dazu "Dateiname oder Erweiterung
zu lang."
Start/Ausführen: cmd

dir /x
del kurzname

del \\?\c:\Pfad zur Datei

del "\\?\c:\Pfad zur Datei mit abschließendem Leerzeichen"

http://ccollomb.free.fr/unlocker/

Gruß

Hermann
Gerold Mittelstädt
2009-06-24 21:08:07 UTC
Permalink
Hallo,
Post by Hermann
Post by Gerold Mittelstädt
Es gibt eine Datei, die ich weder öffnen, umbenennen, verschieben, oder
löschen kann. Windows ignoriert entsprechende Befehle über die Tastatur
(bzw. bietet es im Kontextmenü garnicht an - genau wie die
Dateieigenschaften), die Konsole meint dazu "Dateiname oder Erweiterung
zu lang."
Start/Ausführen: cmd
dir /x
Gibts leider nicht.

Hab versucht über GetShortPathName ranzukommen, aber der Aufruf schlägt
fehl (HRESULT 0); GetLastError will aber auch nicht verraten weshalb.
Post by Hermann
del kurzname
Hab versucht den 8.3-Dateinamen manuell zu erstellen
(http://support.microsoft.com/kb/142982/en-us),
leider wird die Datei dann jedoch nicht gefunden.
Post by Hermann
del \\?\c:\Pfad zur Datei
del "\\?\c:\Pfad zur Datei mit abschließendem Leerzeichen"
"Der Dateiname oder die Erweiterung ist zu lang"


Letztlich geholfen hat es, in der Konsole den Pfad in kurzen Namen
anzugeben (C:\DOKUME~1\Ich\EIGENE~1\...)
Post by Hermann
http://ccollomb.free.fr/unlocker/
Der Sysinternals ProcessExplorer leistet da auch gute Dienste, um
Handles abzuschießen :)


Aber allgemein:
"Der angegebene Pfad und/oder Dateiname ist zu lang. Der vollständig
qualifizierte Dateiname muss kürzer als 260 Zeichen und der Pfadname
kürzer als 248 Zeichen sein."

Ich dachte diese Limitierungen wären seit NTFS nicht mehr vorhanden?
Oder hinkt da die Implementierung in Windows dem, was NTFS eigentlich
könnte, hinterher?

Und irgendwie muss die Datei da ja auch mal hingekommen sein.. Sehr seltsam.
--
Viele Grüße!
Hermann
2009-06-24 21:22:41 UTC
Permalink
Post by Gerold Mittelstädt
"Der angegebene Pfad und/oder Dateiname ist zu lang. Der vollständig
qualifizierte Dateiname muss kürzer als 260 Zeichen und der Pfadname
kürzer als 248 Zeichen sein."
Ich dachte diese Limitierungen wären seit NTFS nicht mehr vorhanden?
Oder hinkt da die Implementierung in Windows dem, was NTFS eigentlich
könnte, hinterher?
Google.

Gruß

Hermann
Heiko Rost
2009-06-25 03:40:03 UTC
Permalink
Post by Gerold Mittelstädt
Und irgendwie muss die Datei da ja auch mal hingekommen sein.. Sehr seltsam.
Das hast Du vielleicht sogar selber gemacht. Der vollständige Dateiname
könnte beim Erstellen unter den 260 Zeichen Länge gewesen sein. Wenn Du
dann einen Ordner einen längeren Namen gibst, wird diese Grenze
möglicherweise überschritten.

Gruß Heiko
Heiko Rost
2009-06-24 20:10:04 UTC
Permalink
Post by Gerold Mittelstädt
Nur: wie kann das sein? Im Explorer (bzw. in der Konsole) wird die Datei
normal angezeigt. Selbst die Dateigröße ist plausibel. Dateiname inkl.
Erweiterung sind 141 Zeichen, der Pfad dort hin hat 127. Dateisystem ist
NTFS, und somit müsten ja eigentlich 255 Zeichen im Dateinamen sowie
32767 Zeichen im Pfad möglich sein.
Zur Erklärung: Nach den "alten" Konventionen darf der vollständige
Dateiname (also LW-Buchstabe, Pfad und Name) maximal 260 Zeichen lang
sein. Die neuen unicodefähigen können mehr als 32000 (wahrscheinlich
2^31) Zeichen haben. Dummerweise verwenden gefühlt 99% aller Programme
die alten, und die 1% der anderen können dann solche unbenutzbaren
Dateien erzeugen.

Neben den Konsolenbefehlen von Herrman kannst Du das Problem auch mit
dem Explorer lösen: Verschiebe den Ordner, der die Datei enthält, an
eine andere Stelle auf dem selben Laufwerk, so daß der vollständige Name
die 260 Zeichen nicht mehr überschreitet, lösche die Datei bzw. benenne
sie um und schiebe den Ordner wieder an den alten Ort.

Gruß Heiko
Wolfgang Wandel
2009-06-25 04:21:46 UTC
Permalink
Post by Heiko Rost
Neben den Konsolenbefehlen von Herrman kannst Du das Problem auch mit
dem Explorer lösen: Verschiebe den Ordner, der die Datei enthält, an
eine andere Stelle auf dem selben Laufwerk, so daß der vollständige Name
die 260 Zeichen nicht mehr überschreitet, lösche die Datei bzw. benenne
sie um und schiebe den Ordner wieder an den alten Ort.
Alternativ könntest Du folgendes versuchen:
lege eine Freigabe auf den entsprechenden Ordner und verbinde Dich
damit. Die Datei sollte dann (wenn der Dateiname incl. Ordnername kürzer
als 260 Zeichen ist) problemlos löschen lassen.

Gruss
Wolfgang
Helmar
2009-06-25 16:26:23 UTC
Permalink
Post by Gerold Mittelstädt
Wie bekomme ich jetzt also wieder Zugriff auf die Datei?
Überlange Pfadnamen. ...
Benutze Fastcopy um die Datei in einen kürzeren Pfad zu verschieben und dann
hast Du dem Verursacher links und rechts eine, damit er sowas nicht wieder
macht.
--
Steve Miller <***@hotmail.com> in news:***@TK2MSFTNGP10.phx.gbl
"Außerdem bin ich nicht lernrestent. Ich weiß einfach schon alles."
Loading...