Benutzer mit den meisten Antworten
Dateien auslesen > 260 Zeichen Pfadlänge

Frage
-
Hallo,
ich habe ein Problem beim durchgehen und auslesen/öffnen von Dateien deren Pfad und Dateiname zusammen 260 Zeichen oder mehr überschreiten.
Leider haben wir mit dem Framework ja das Problem diese Dateien nicht bearbeiten zu können, jetzt möchte ich das mit der Windows-API / Kernel32.dll machen.
Gibt es für .net VB 2010 eine Abhandlung/fertiges Script wie man mit der API die Dateien durchgehen kann?
Viele Grüsse,
Maximilian
Antworten
-
Hallo Maximilian,
schau Dir mal an: Long Paths in .NET, Part 1 of 3 [Kim Hamilton] (Links zu 2 und 3 am Ende).
Dort gibt es einigen C# Code den Du via VB Converter umwandeln können solltest (sonst nachfragen).
Gruß Elmar
P.S.: Den Code aus dem Link von Thomas solltest Du eher nicht verwenden, da nicht Unicode getreu.
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 20. Februar 2015 14:20
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 27. Februar 2015 14:02
Alle Antworten
-
Hallo, ich habe mal kurz nachgeschaut.
Vielleicht hilft dir das hier weiter:
© 2015 Thomas Roskop
Germany // Deutschland
-
Hallo zusammen,
ich denke ich muss die Win32-API nehmen, das aber für VB.net umzuschreiben ist noch eine kleine Anforderung an mich.
Da ich eben diese Dateien suchen und auch auslesen möchte, muss ich auf Funktionen aus dem Framework komplett verzichten.
Mal schauen wie weit ich komme, dachte das Problem haben andere auch und es würde dafür zu vb.NET schon was geben :-)
Viele Grüsse,
Maximilian -
Hallo Maximilian,
schau Dir mal an: Long Paths in .NET, Part 1 of 3 [Kim Hamilton] (Links zu 2 und 3 am Ende).
Dort gibt es einigen C# Code den Du via VB Converter umwandeln können solltest (sonst nachfragen).
Gruß Elmar
P.S.: Den Code aus dem Link von Thomas solltest Du eher nicht verwenden, da nicht Unicode getreu.
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 20. Februar 2015 14:20
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 27. Februar 2015 14:02
-
Hallo Elmar,
welchen Konverter könntest Du mir empfehlen? Ich verwende den von Telerik, aber mit dem Code kommt er nicht klar.
Kannst Du den übersetzen/konvertieren?
Bei der rekursiven Suche müsste ich die Funktion immer neu starten?
Sorry, da komme ich etwas an meine Grenzen.
Viele Grüsse,
Maximilian -
Hallo Maximilian,
Ich gehe davon aus, dass Elmars Antwort Dir weitergeholfen hat und dass Du einen Konverter gefunden hast, der den verlinkten Code erfolgreich konvertiert. Solltest Du noch Rückfragen dazu haben, gib bitte Bescheid. Ich lasse auch einen Link auf einen anderen Konverter hier.
Gruß,
Dimitar
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Bearbeitet Dimitar DenkovMicrosoft contingent staff, Administrator Samstag, 28. Februar 2015 09:49
-
Hallo Dimitar,
vielen Dank für den Link, werde ich testen. Hatte schon Schrittweise den Code übersetzt, werde es so nachmal prüfen.
Ich hoffe noch eine Frage nachschieben zu können...
Das Suchmuster ist ja "/*" womit alles über die Funktionen der Kernel32.dll gesucht werden soll. Erst in der Schleife kann ich testen ob eine Datei meiner Suche entspricht.
Wenn ich als Suchmuster z.Bsp. "/*.bak" dem Pfad mitgebe, findet er die Files im angegebenen Folder, sucht aber dann nicht mehr rekursiv.
Mir ist das nicht so klar.
Viele Grpsse,
Maximilian -
Hallo Maximillian,
das Windows API sucht niemals rekursiv, die Methoden mit SearchOption sind Erweiterungen des .NET Frameworks. Das kann man aber problemlos nachbauen, wie ich es ehedem mit FindFilesRecursive gezeigt hatte.
Gruß Elmar