Seite 1 von 2

Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Di 9. Dez 2008, 08:50
von mike
Hallo Alex

Als allererstes spreche ich Dir ein grosses Lob für Deine Applikation aus.  :) Backup Home Service (inkl. Versionisierung!) ist genau das, was ich für das regelmässige Backup meiner Daten zu Hause gesucht habe...
..und jetzt kommt leider der Haken  :( (bzw. mein Feature request):
Ich meiner Verzeichnistruktur verwende ich oft lange Dateinamen und Pfade, die die unschöne Meldung "Der angegebene Pfad und/oder Dateinamen ist zu lang..." nach sich zieht. Mir ist klar, dass ich meine Daten reorganisieren könnte, möchte dies jedoch nur als allerletzte Möglichkeit in Betracht ziehen.
Hast du kurz- oder mittelfristig geplant die Längenbeschränkung von Datei-/Pfadangaben zu umgehen?

Besten Dank für Deine Antwort.

Grüsse
Mike

Re: Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Di 9. Dez 2008, 11:08
von Alex
Hallo Mike,

wie hast du denn überhaupt so lange Dateinamen und Pfade generiert. Sogar Windows Explorer unterstützt nur maximal 250 Zeichen.
Ich werde aber mal sehn, wo das Problem liegt, den praktisch sollte es kein Problem darstellen mit mehr Zeichen zu arbeiten.

Aber wie hast du das hinbekommen... ?

Re: Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Di 9. Dez 2008, 16:18
von mike
Hallo Alex

Ich habe mir die von Backup Home Service gemeldeten Dateien genauer angeschaut und bin der Meinung, dass ich diese im Windows Explorer kopiert habe. Ich verwende keine anderen Dateibrowser. Es kann sein, dass ich Dateien mit einem langen Dateinamen von einem "normalen" Ordner in einen tief verschachtelten Ordner kopiert habe.
Mein OS:
Windows XP SP3 Pro Englisch mit deutschem MUI (inkl. allen aktuellen Hotfixes)

Beispieldatei, die nicht gesichert werden kann:
Quelle: D:\Home\Mike\Eigene Dateien\__Wichtig\Jobs\Arbeitgeber\xxxx aaa\xxxx-yy aaa Antrag Fort- und Weiterbildung (Eidg. dipl. Informatiker)\xxxx-yy-zz aaa Antrag Fort- und Weiterbildung inkl. bezahlter Rechnung (Unterschrieben von a. aaaaaaaaaa).pdf ==> Total 244 Zeichen

Ziel: E:\Testsicherung\09-12-2008 16-17-21\Eigene Dateien\__Wichtig\Jobs\Arbeitgeber\xxxx aaa\xxxx-yy aaa Antrag Fort- und Weiterbildung (Eidg. dipl. Informatiker)\xxxx-yy-zz aaa Antrag Fort- und Weiterbildung inkl. bezahlter Rechnung (Unterschrieben von a. aaaaaaaaaa).pdf ==> Total 268 Zeichen

Der Quellpfad liegt noch knapp unter den max. 248 Zeichen. Das Problem tritt erst bei der Zieldatei auf.
Ehrlicherweise muss ich zugeben, dass die Datei- und Pfadlängen bei näherer Betrachtung gekürzt werden könnten. Aber vielleicht ist ja dennoch ein Interesse Deinerseits vorhanden, diese Beschränkung anzugehen.

Re: Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Di 9. Dez 2008, 19:33
von Alex
Hallo Mike,

es gibt eine Lösung für das Problem die ich ohne Probleme einbauen kann.

Ich sehe jedoch ein weiteres Problem in der Verwendbarkeit. Sobald der Pfad großer als 248 Zeichen wird, kann sie der Windows Explorer nicht mehr verwalten. Was ist nun, wenn du z.B. den Sicherungsordner löschen willst? Es funktioniert nicht und das wird den ein oder anderen verwirren.
Klar gibt es bestimmt extra Tools, die so lange Pfade problemlos verwalten können, aber der normale Benutzer nutzt den Windows Explorer.

Verstehst du was ich meine? Ich will nicht etwas generieren, dass dann Windows "nicht selbst verwalten kann".

Re: Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Mi 10. Dez 2008, 07:42
von mike
Hallo Alex

Dein Argument bezüglich der fehlenden Unterstützung von langen Namen in Windows Explorer ist (leider) berechtigt.  :(
Meines Erachtens ist es ungewöhnlich, dass Windows Commandline-Tools wie "MD" oder "RD" länger Verzeichnisnamen unterstützen, der Explorer jedoch nicht. Diese Ausgangslage ist leider vorgegeben und da hilft all mein Mäckern nichts.

Einige Vorschläge wie der Umgang mit langen Namen optimiert werden könnte:
a) Die Pfadlänge der Zieldateien werden vor dem Backup auf deren Länge getestet und "Verstösse" dadurch frühzeitig angezeigt.
b) Unterstützung von überlangen Namen wird implementiert:
      - Diese Funktion z.B. während der Installation durch den Anwender als Option aktivieren lassen (mit Anzeige des entsprechenden Warnhinweises)
      - Innerhalb von Backup Service Home eine Lösch-Funktion einbauen, die die überlangen Namen unterstützt

Ob einer diese Vorschläge mit verhältnismässigem Aufwand implementiert werden kann und für Dich einen Mehrwert darstellen, liegt selbstverständlich in Deinem Ermessen. Mich würdest Du in jedem Fall mit Variante "b" glücklich machen und evtl den einen oder anderen weiteren Anwender Deines Programms.  ;D

Re: Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Mi 10. Dez 2008, 17:14
von Alex
Also ich werde das ganze nochmal gründlich überlegen.
Ich habe dein Vorschlag schonmal auf die TODO-Liste geschrieben.

Re: Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Mi 10. Dez 2008, 19:56
von mike
Besten Dank

Re: Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Mi 14. Jan 2009, 17:07
von Alex
Auch wenn das Thema schon älter ist: Hier nochmal ein Update.

Ich habe es bisher nicht hinbekommen, dass mehr als 255 unterstützt werden. Das scheint an der Architektur von .NET zu liegen. Ich möchte hier auch nicht unsichere Methoden verwenden, die möglicherweise anders als vorherzusehen funktionieren und somit die Datensicherung instabil machen.
Aus diesem Grund ist vorerst Variante a umgesetzt worden (es wird davor gewarnt). Falls es doch noch eine Lösung gibt, werde ich diese natürlich implementieren und hier weiter Infos bekannt geben.

Re: [BEANTWORTET] Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Fr 27. Feb 2009, 20:17
von drei
Tja, jetzt bin ich gerade seit ein paar Minuten dabei, das Programm zu testen (unter Vista Home Premium), und schon verabschiedet es sich mit "Fehler, Pfadbegrenzung erreicht". Seltsamerweise beim Einsammeln der Daten, bevor etwas ins Backup geschrieben wurde. Irgendwie müssen die langen Pfade mal entstanden sein.

Und jetzt habe ich ein paar Wünsche:

1. Würde ich gerne im Log nachlesen, was passiert ist. Das Programmenü (das im übrigen wundervoll schlicht aufgeräumt ist), bietet mir nur leider nicht an, im Log nachzusehen. Das ist schade - praktisch jedes andere Backup-Programm, das ich kenne, hat eine solche Option. Über "Konfiguration" kann ich mich zum Punkt "Protokoll" durchhangeln. Da steht aber nur "Sicherung wurde gestartet". Es steht nicht einmal da, dass sie wieder abgebrochen wurde.

2. Wünsche ich mir eine Option, die überlange Pfadnamen automatisch kürzt und ein Protokoll erzeugt, in dem die betroffenen Dateien aufgeführt sind.

Wie kann ich jetzt die überlangen Pfade finden und korrigieren? Gibt es irgendwo eine Log-Datei, die ich bisher nicht finde und in der das steht?

Re: [BEANTWORTET] Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Sa 28. Feb 2009, 16:39
von Alex
Zu 1:
Grundsätzlich ist deine Behauptung korrekt, dass es umständlich sei, das Protokoll aufzurufen. Eine zusätzliche Schaltfläche aber würde die von dir genannte "wundervoll schlicht aufgeräumt[e]" Oberfläche überladen, weil man dann auch sagen könnte, dass man eine zusätzliche Schaltfläche "Browser" etc. einbauen könnte... Es ist also mit absicht so konzipiert worden  ;)

Zu 2:
Das Problem ist meist nicht das Quellverzeichnis, sondern das Zielverzeichnis, dass die 255 Zeichengrenze überschreitet. Damit man auch ohne BSH die Dateien einfach wiederherstellen kann, habe ich mich entschieden auch im Zielverzeichnis die gleiche Ordnerstruktur zu verwenden, wie im Quellverzeichnis.
Ich bin derzeit am grübeln, wie ich die Dateien am besten organisiere, dass solche Überschreitungen nur selten passieren. Es ist halt wirklich ein Problem, dass von Windows ausgeht. Selbst Microsoft ist damit am kämpfen (z.B. wurde in Vista "Dokumente und Einstellungen" zu "Benutzer" umbenannt)
Wie kann ich jetzt die überlangen Pfade finden und korrigieren?
Derzeit eigentlich noch gar nicht. Deshalb wird es beim nächsten kleinen Update eine entsprechende Erweiterung des Fehlerfensters geben, in dem dann die entsprechenden Dateien angezeigt werden.

Eine Frage zwischendrin: Besteht Interesse an einer "Ignorieren"-Funktion, mit der die betroffenen Dateien übersprungen werden können (als eine Art Zwischenlösung)?

Re: [Lösungsansatz] Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Di 25. Aug 2009, 17:35
von newmy
Hallo Alex,

schau dir mal : http://social.msdn.microsoft.com/Forums ... 0cfd0e2d3/  und http://blogs.msdn.com/bclteam/archive/2 ... ilton.aspx an, es gibt die sog. UnicodeApiFunktionen - die enden alle mit einem W anstelle von A. (s. dazu http://msdn.microsoft.com/en-us/library ... S.85).aspx)

Damit ist es möglich mit den langen Dateinamen klarzukommen.
Der Explorer in Vista kanns schon. unter XP muß man nachhelfen mit z.B.: Delimon win32Explorer (nicht mehr online).

Ich bin zwar kein Programmierer aber ein leidgeprüfter Administrator.

newmy

Re: [BEANTWORTET] Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Mi 26. Aug 2009, 13:08
von Alex
Ich habe es mal zur TODO-Liste für BSH 4 geschrieben:
http://www.alexosoft.de/bugs/viewissue. ... _no=BSH4-1

Re: [BEANTWORTET] Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Mo 19. Dez 2016, 02:34
von Carsten_M
Ich bin heute leider auch in dieses unschöne Problem gelaufen. Nach 8 Jahren sollte es doch eine Lösung dafür geben oder?

Code: Alles auswählen

D:\Videos\Media\HARMY-DEED-IV-V2 7-MKV-MULTIPART\Star Wars Despecialized 2.7 MKV\Subtitles Project Threepio v9.1\vsfilter\guliverkli2\src\filters\parser\diracsplitter\libdirac\libdirac_common\arith_codec.h
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.
Leider kann man diese Order auch nicht mehr sauber löschen. Nachdem Versuch erhalte ich im Browser die kryptische Fehlermeldung: "Datenbankdatei veraltet - Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

Re: Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Mo 19. Dez 2016, 11:25
von Alex
Nach 8 Jahren sollte es doch eine Lösung dafür geben oder?
In BSH gibt es seit längerem schon eine Lösung für das Problem, das zumindest beim Kopieren auf das Backupmedium das Problem löst. Leider klappt es weiterhin nicht, wenn die Quelldatei einen zu langen Pfad besitzt. Windows beschränkt die Länge des Dateipfads. Es gibt jedoch seit dem Windows 10 Anniversary Update intern wohl eine Änderung, die aber noch abgeschaltet ist. Wann es hier Änderungen gibt kann ich nicht sagen.

Zu deinem spezifischen Problem: Ist das die Datei, die kopiert werden soll oder zeigt er hier den Zielpfad (sprich Backupmedium) an?

Re: Unterstützung von Dateinamen > 260 Zeichen / Pfade >248

Verfasst: Mo 19. Dez 2016, 13:22
von Carsten_M
Zu deinem spezifischen Problem: Ist das die Datei, die kopiert werden soll oder zeigt er hier den Zielpfad (sprich Backupmedium) an?
Es handelt sich um den Quellpfad, aber interessanterweise ist der nur 205 Zeichen lang, stimmt da etwa die Berechnung der Länge nicht?