Probleme mit Datei- + Pfadlängen > 25x Zeichen
Moderators: Hacker, Stefan2, white
- Tahattmeruh
- Senior Member
- Posts: 244
- Joined: 2003-05-16, 13:35 UTC
Probleme mit Datei- + Pfadlängen > 25x Zeichen
Ich habe einen Pfad 3 Unterordnern mit 240 Zeichen Länge.
Dann noch eine Datei mit 40 Zeichen Länge.
Egal ob im Explorer oder in TC, die meisten Kontextmenüeinträge
fehlen und Drag and Drop in anderer Programme funktioniert
auch nicht. Ist das immer so, ein Fehler in meinem Windows
oder gibt es einen Registryeintrag den ich setzen kann um
dieses Verhalten zu verhindern?
Image: https://i.imgur.com/ggDaGDG.png
Image: https://i.imgur.com/DrizZlq.png
Die Programme die ich benutze kommen alle damit zurecht wenn ich das Programm selber starte und mit Datei öffnen die Datei direkt öffne.
Dann noch eine Datei mit 40 Zeichen Länge.
Egal ob im Explorer oder in TC, die meisten Kontextmenüeinträge
fehlen und Drag and Drop in anderer Programme funktioniert
auch nicht. Ist das immer so, ein Fehler in meinem Windows
oder gibt es einen Registryeintrag den ich setzen kann um
dieses Verhalten zu verhindern?
Image: https://i.imgur.com/ggDaGDG.png
Image: https://i.imgur.com/DrizZlq.png
Die Programme die ich benutze kommen alle damit zurecht wenn ich das Programm selber starte und mit Datei öffnen die Datei direkt öffne.
Jep, völlig normal, da das Kontextmenü nun einmal vom Explorer bzw. genaugenommen von der Shell erzeugt wird. Es gibt noch sehr viele Umbauarbeiten, bis alle Teile in Windows überlange Pfade wirklich vollständig unterstützen. Und vermutlich nochmal länger wird's dauern, bis die Shell Extensions der Drittanbieter das ebenfalls tun (die meisten, wenn nicht gar alle der fehlenden Einträge in deinen Screenshots stammen von Shell Extensions).
Grüße
Dalai
Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
- Tahattmeruh
- Senior Member
- Posts: 244
- Joined: 2003-05-16, 13:35 UTC
Überlange Pfade verarbeiten können. Da hilft nur, den Autor der entsprechenden Software anzuschreiben, in der Hoffnung, dass er da ein Problem sieht und das ändern will und kann.Tahattmeruh wrote:Was muss eine Shellextension tun damit sie bei überlangen Pfaden trotzdem erscheint?
-----
Ich stelle mir die Arbeitsweise von Shell Extensions im Kontextmenü folgendermaßen vor (ob es wirklich so läuft, weiß ich nicht, das können andere viel besser beurteilen). Die Shell fragt alle Shell Extensions, die für den entsprechenden Dateityp registriert sind, welche(n) Eintrag/Einträge sie von der jeweiligen Shell Extension anzeigen soll. Dazu übergibt die Shell den Pfad dieser Datei nacheinander (oder gleichzeitig) an die Shell Extensions. Damit diese entscheiden kann, ob sie ihren Eintrag anzeigen lassen will bzw. wie viele oder welche (oder wie auch immer), muss sie das anhand des übergebenen Pfads tun. Wenn sie nichts mit dem Pfad anfangen kann (weil zu lang, wegen ungültiger Zeichen (Unicode) o.ä.), dann meldet sie im Zweifel an die Shell zurück, dass es nix anzuzeigen gibt.
Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
- Tahattmeruh
- Senior Member
- Posts: 244
- Joined: 2003-05-16, 13:35 UTC
Ja. Aber wie?
Laut https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
kann ich entweder den Registry-Eintrag setzen (ist gesetzt) oder ein Manifest erstellen. Beides ist gesetzt und trotzdem erscheint der Eintrag nicht.
Laut https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
kann ich entweder den Registry-Eintrag setzen (ist gesetzt) oder ein Manifest erstellen. Beides ist gesetzt und trotzdem erscheint der Eintrag nicht.
Eine Shell Extension ist eine DLL irgendwo auf deiner Platte. Diese DLL enthält Funktionen zum Verarbeiten der Pfade, die von der Shell kommen. Und diese Funktionen müssen die Pfade verarbeiten können. Die Implementierung in der DLL muss also geändert werden, und das kann (normalerweise) nur der Autor der DLL. Das heißt, du als Nutzer kannst gar nichts weiter tun - außer den Autor der jeweiligen Shell Extension anzuschreiben, wie ich bereits anmerkte.
Die Aktivierung überlanger Pfade via Registry hat gar keinen Einfluss auf das Verhalten einer Shell Extension. Und ein Manifest muss in jede Software eingebettet werden, die überlange Pfade unterstützt - sinnvollerweise erst dann, wenn das tatsächlich der Fall ist. Die Grundproblematik, dass die Software (auch Shell Extensions) entsprechend angepasst werden muss, bleibt in jedem Fall bestehen.
Grüße
Dalai
Die Aktivierung überlanger Pfade via Registry hat gar keinen Einfluss auf das Verhalten einer Shell Extension. Und ein Manifest muss in jede Software eingebettet werden, die überlange Pfade unterstützt - sinnvollerweise erst dann, wenn das tatsächlich der Fall ist. Die Grundproblematik, dass die Software (auch Shell Extensions) entsprechend angepasst werden muss, bleibt in jedem Fall bestehen.
Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
- Tahattmeruh
- Senior Member
- Posts: 244
- Joined: 2003-05-16, 13:35 UTC
Richtig. Soweit ich weiß, MUSS das auch so sein! Der Präfix "\\?" zeigt an, ob es sich um einen überlangen Pfad handelt.Tahattmeruh wrote:bei den überlagen Pfaden fängt der Pfad mit \\?\c:\ an anstatt nur c:\
Woran machst du fest, dass sie (die Shell Extension, welche überhaupt?) damit zurecht käme? Beachte, dass eine Shell Extension nicht die Software selbst ist. Beispiel: Nehmen wir mal 7zip aus deinen Screenshots, dessen Einträge bei überlangen Pfaden im Kontextmenü fehlen. Die Shell Extension kommt ganz offensichtlich nicht mit überlangen Pfaden zurecht. Ob nun 7zip selbst überlange Pfade unterstützt oder nicht (kann durchaus sein), spielt dabei keine Rolle.Grundsätzlich kommt sie mit den langen Pfaden und Dateien nämlich zurecht.
Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror