Dateizugriff in .NET auf Dateien mit mehr als 260 Zeichen Länge

io
file
string
net
csharp
Tags: #<Tag:0x00007f9ae0539fa8> #<Tag:0x00007f9ae0539d28> #<Tag:0x00007f9ae0539b98> #<Tag:0x00007f9ae0539940> #<Tag:0x00007f9ae05396c0>

#1

Die normale File-Klasse erlauben keine Dateinamen/-Pfade, die länger als MAX_PATH (260 Zeichen) sind.

Deshalb habe ich schon vor längerem angefangen, eine Bibliothek namens Zeta Long Paths zu erstellen, die die wichtigsten Datei- und Ordner-Operationen auch für längere Pfade ermöglicht.

Damit könnt Ihr ganz analog zu den bekannten .NET-Klassen auf Dateien und Ordner zugreifen, z.B.:

var folderPath = new ZetaDirectoryInfo( @"C:\My\Long\Folder\Path" );

foreach ( var filePath in folderPath.GetFiles() )
{
    Console.Write( "File {0} has a size of {1}", 
        filePath.FullName, 
        filePath.Length );
}

Ich aktualisiere die Bibliothek (un)regelmäßig und bauen neue Funktionen ein. Ein NuGet-Paket gibt’s auch.


Fehlermeldung "Not a valid Win32 FileTime" beim Setzen der Creation Time einer Datei
#2

Es gibt neben meiner Bibliothek auch andere Bibliotheken für den Zugriff mit längeren Pfaden:

Ich habe bisher keine andere verwendet. Als ich zum Entwickeln angefangen habe, gab’s noch keine andere Bibliothek oder ich habe schlecht recherchiert.

Die Long Path-Bibliothek ist laut Nutzerkommentaren recht eingeschränkt; die Delimon-Bibliothek ist anscheinend sehr viel mächtiger als meine Bibliothek.


#3

Habe heute zufällig gesehen, dass Microsoft selbst eine (interne) Klasse System.IO.LongPath nutzt.

Ob die wohl auch irgendwie extern zugreifbar ist?