vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: System.IO Klassen -> Pfadtiefe von mehr als 256 Zeichen 
Autor: ModeratorDaveS (Moderator)
Datum: 12.02.09 13:40

Wenn du die Datei mit Windows CreateFile() API öffnest kannst du den File Handle dem FileStream Constructor übergeben. Das erlaubt die Verwendung vom "\\?\" Präfix um Pfadlänge bis etwa 32.000 Zeichen zu ermöglichen. So geht's
    Public Const GENERIC_WRITE As Integer = &H40000000
    Public Const GENERIC_READ As Integer = &H80000000
 
    Public Const FILE_ATTRIBUTE_NORMAL As Integer = &H80
    Public Const CREATE_NEW As Integer = 1
    Public Const CREATE_ALWAYS As Integer = 2
    Public Const OPEN_EXISTING As Integer = 3
    Public Const OPEN_ALWAYS As Integer = 4
 
    Public Const TRUNCATE_EXISTING As Integer = 5
 
    Public Const FILE_SHARE_READ As Integer = &H1
    Public Const FILE_READ_EA As Integer = &H8
    Public Const FILE_SHARE_WRITE As Integer = &H2
 
    Public Const INVALID_HANDLE_VALUE As Integer = -1
 
    <DllImport("kernel32.dll", SetLastError:=True)> _
    Public Shared Function CreateFile _
        (ByVal lpFileName As String, _
        ByVal dwDesiredAccess As Integer, _
        ByVal dwShareMode As Integer, _
        ByVal lpSecurityAttributes As Integer, _
        ByVal dwCreationDisposition As Integer, _
        ByVal dwFlagsAndAttributes As Integer, _
        ByVal hTemplateFile As IntPtr) As IntPtr
 
    End Function
 
    Public Sub cftest()
        Dim h As IntPtr = CreateFile("\\?\C:\windows\angler.bmp", GENERIC_READ, _
          FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, IntPtr.Zero)
        If h <> INVALID_HANDLE_VALUE Then
            Dim fs As New IO.FileStream(h, IO.FileAccess.Read) 
            Dim buff(fs.Length - 1) As Byte
            fs.Read(buff, 0, fs.Length)
            fs.Close()
        End If
    End Sub

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
System.IO Klassen -> Pfadtiefe von mehr als 256 Zeichen1.446LarsThorwald12.02.09 12:58
Re: System.IO Klassen -> Pfadtiefe von mehr als 256 Zeich...942icetea12312.02.09 13:36
Re: System.IO Klassen -> Pfadtiefe von mehr als 256 Zeich...968ModeratorDaveS12.02.09 13:40
Re: System.IO Klassen -> Pfadtiefe von mehr als 256 Zeich...925LarsThorwald12.02.09 18:18
Re: System.IO Klassen -> Pfadtiefe von mehr als 256 Zeich...961ModeratorDaveS12.02.09 20:31
Re: System.IO Klassen -> Pfadtiefe von mehr als 256 Zeich...867ModeratorDaveS13.02.09 10:25

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel