vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 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 - Fortgeschrittene
Re: Virtuelles Laufwerk 
Autor: svss
Datum: 17.12.09 11:30

Diese Klasse macht das was Du brauchst. Sie stammt von Konstantin Gross und funktioniert hervorragend.

Wenn Du sie verwendest, sollte in der App-Info stehen, dass Du diese Klasse von Ihm hast.

Gruß Volker

'
' * VirtualDrive - Erstellung/Löschung von virtuellen Laufwerken
' * ------------------------------------------------------------
' * Version: 1.0
' * Copyright © 2007 Konstantin Gross
' * http://www.texturenland.de
' *
'


Aufruf zum Verbinden

Dim tl As New VDrive
VDrive.Create("Z", "C:\Temp")


Aufruf zu Trennen
VDrive.Delete("Z", "C:\Temp")



Imports System
Imports System.IO
Imports System.Runtime.InteropServices
 
 
    Public Class VDrive
 
#Region "Win32"
        <DllImport("kernel32.dll", CharSet:=CharSet.Auto)> _
        Private Shared Function DefineDosDevice(ByVal dwFlags As Integer, ByVal _
        lpDeviceName As String, ByVal lpTargetPath As String) As Boolean
        End Function
 
        <DllImport("kernel32.dll", CharSet:=CharSet.Auto)> _
        Private Shared Function GetDriveType(ByVal lpRootPathName As String) As _
        Integer
        End Function
 
        Private Const DDD_RAW_TARGET_PATH As Integer = 1
        Private Const DDD_REMOVE_DEFINITION As Integer = 2
        Private Const DDD_EXACT_MATCH_ON_REMOVE As Integer = 4
 
        Private Const DRIVE_UNKNOWN As Integer = 0
        Private Const DRIVE_NO_ROOT_DIR As Integer = 1
        Private Const DRIVE_FIXED As Integer = 3
#End Region
 
#Region "Öffentliche Methoden"
 
#Region "Erstellen"
        ''' <summary> 
        ''' Erstellung eines nicht persistenten Laufwerks. 
        ''' </summary> 
        ''' <param name="driveChar">Laufwerksbuchstabe.</param> 
        ''' <param name="path">Pfad zu dem zu verknüpfenden Ordner.</param> 
        ''' <returns>True/False beim Versuch das Laufwerk zu erstellen</returns> 
        Public Shared Function Create(ByVal driveChar As Char, ByVal path As _
          String) As Boolean
            Return DDDOperation(driveChar, path, True)
        End Function
#End Region
 
#Region "Löschen"
        ''' <summary> 
        ''' Löschung eines nicht persistenten Laufwerks. 
        ''' </summary> 
        ''' <param name="driveChar">Laufwerksbuchstabe.</param> 
        ''' <param name="path">Pfad zu dem zu verknüpfenden Ordner.</param> 
        ''' <returns>True/False beim Versuch das Laufwerk zu löschen</returns> 
        Public Shared Function Delete(ByVal driveChar As Char, ByVal path As _
          String) As Boolean
            Return DDDOperation(driveChar, path, False)
        End Function
#End Region
 
#End Region
 
#Region "Private Methoden"
 
#Region "DDDOperationen"
        Private Shared Function DDDOperation(ByVal driveChar As Char, ByVal _
          path As String, ByVal create As Boolean) As Boolean
            'Gültiges Verzeichnis? 
            If Not Directory.Exists(path) Then
                Return False
            End If
 
            Dim drive As String = String.Format("{0}:", driveChar.ToString( _
              ).ToUpper())
 
            'Existiert das Volumen? 
            Dim type As Integer = GetDriveType(String.Format("{0}{1}", drive, _
              System.IO.Path.DirectorySeparatorChar))
 
            'Hinweiß: Ein erstelltes virtuelles Laufwerk ist vom Typ DRIVE_FIXED 
            If (create AndAlso type <> DRIVE_UNKNOWN AndAlso type <> _
              DRIVE_NO_ROOT_DIR) OrElse (Not create AndAlso type <> _
              DRIVE_FIXED) Then
                Return False
            End If
 
            Dim flags As Integer = DDD_RAW_TARGET_PATH
 
            If Not create Then
                flags = flags Or (DDD_REMOVE_DEFINITION Or _
                  DDD_EXACT_MATCH_ON_REMOVE)
            End If
            Return DefineDosDevice(flags, drive, String.Format("{0}??{0}{1}", _
              System.IO.Path.DirectorySeparatorChar, path))
        End Function
#End Region
 
#End Region
 
 
    End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Virtuelles Laufwerk2.395WarFare14.12.09 13:04
Re: Virtuelles Laufwerk1.648keco14.12.09 13:43
Re: Virtuelles Laufwerk1.610WarFare14.12.09 20:35
Re: Virtuelles Laufwerk1.611jvbsl15.12.09 12:09
Re: Virtuelles Laufwerk1.829WarFare17.12.09 00:37
Re: Virtuelles Laufwerk2.010svss17.12.09 11:30

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