none
Dateien auslesen > 260 Zeichen Pfadlänge RRS feed

  • 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

    Montag, 16. Februar 2015 16:01

Antworten

Alle Antworten

  • Hallo, ich habe mal kurz nachgeschaut.

    Vielleicht hilft dir das hier weiter:


    © 2015 Thomas Roskop

    Germany // Deutschland

    Montag, 16. Februar 2015 16:08
  • Hi hier ist noch Link wie du es mit .Net umgehen kannst.

    MFG

    Björn

    Montag, 16. Februar 2015 16:29
  • 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

    Dienstag, 17. Februar 2015 18:04
  • 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.

    Dienstag, 17. Februar 2015 19:08
    Beantworter
  • 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

    Dienstag, 17. Februar 2015 19:57
  • 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.

    Freitag, 27. Februar 2015 14:02
    Administrator
  • 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

    Montag, 2. März 2015 06:05
  • 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

    Montag, 2. März 2015 07:32
    Beantworter