Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst VB.NET Symlink (mklink)

Mitglied: duschgas

duschgas (Level 1) - Jetzt verbinden

23.02.2016, aktualisiert 12:58 Uhr, 2550 Aufrufe, 6 Kommentare

Guten Tag,

ich bin am verzweifeln.
Mittels VB.NET möchte ich per Buttonklick einen Symlink (mklink) einer Datei erstellen.

Mein code sieht wie folgt aus.
01.

02.
        Dim rnd As New Random
03.
        Dim ZufallsZahl As Integer = rnd.Next(1, 10000000)
04.

05.
        Dim appData As String = GetFolderPath(SpecialFolder.ApplicationData)
06.

07.
        Dim MkLink1 As String = "C:\Program Files (x86)\Testpfad\" & ZufallsZahl & "\Test.txt"
08.
        Dim Mklink2 As String = "" & appData & "\Testpfad\Test.txt"
09.

10.
        Dim Mklink As New Process
11.
            Mklink.StartInfo.FileName = "cmd.exe"
12.
            Mklink.StartInfo.Arguments = "/C mklink " & Chr(34) & MkLink1 & Chr(34) & " " & Chr(34) & Mklink2 & Chr(34)
13.
            Mklink.Start()
Beide Pfade enthalten Leerzeichen. Mit dem Wert "Zufallszahl" wird davor eine Zufallszahl generiert. Das funktioniert tatellos.

Kann mir jemand weiterhelfen? Ich komme einfach nicht zurecht.

Vielen lieben Dank.
Paddy
Mitglied: 126919
LÖSUNG 23.02.2016, aktualisiert um 12:58 Uhr
Mach das Erstellen eines Softlinks nativ mit der WIn32-API (CreateSymbolicLink) und nicht so umständlich über die CMD X) wir sind hier ja nicht auf einer DOS-Party
01.
Imports System.Runtime.InteropServices
02.

03.
Public Class Form1
04.
    Private Enum SYMBOLIC_LINK_FLAG As Integer
05.
        File = 0
06.
        Directory = 1
07.
    End Enum
08.

09.
    <DllImport("kernel32.dll")>
10.
    Private Shared Function CreateSymbolicLink(ByVal lpSymlinkFileName As String, ByVal lpTargetFileName As String, ByVal dwFlags As SYMBOLIC_LINK_FLAG) As Boolean
11.
    End Function
12.

13.
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
14.
        CreateSymbolicLink("C:\test_link.txt", "C:\test.txt", SYMBOLIC_LINK_FLAG.File)
15.
    End Sub
16.

17.
End Class
Der letzte Parameter bei CreateSymbolic Link sagt aus ob der Link ein Verzeichnis oder eine Datei ist welche verlinkt wird.

fk
Bitte warten ..
Mitglied: duschgas
23.02.2016, aktualisiert um 12:53 Uhr
Hallo,

vielen Dank. Das funktioniert 1a mit
CreateSymbolicLink("C:\test_link.txt", "C:\test.txt", SYMBOLIC_LINK_FLAG.File)

Leider habe ich immernoch Probleme mit den Leerzeichen

Dim MkLink1 As String = "C:\Program Files (x86)\Testpfad\" & ZufallsZahl & "\Test.txt"
Dim Mklink2 As String = "" & appData & "\Testpfad\Test.txt"

CreateSymbolicLink(MkLink1, Mklink2 , SYMBOLIC_LINK_FLAG.File)

Hättets du da einen Tipp für mich?
Bitte warten ..
Mitglied: 126919
23.02.2016, aktualisiert um 12:58 Uhr
Zitat von duschgas:
Leider habe ich immernoch Probleme mit den Leerzeichen

Dim MkLink1 As String = "C:\Program Files (x86)\Testpfad\" & ZufallsZahl & "\Test.txt"
Dim Mklink2 As String = "" & appData & "\Testpfad\Test.txt"

CreateSymbolicLink(MkLink1, Mklink2 , SYMBOLIC_LINK_FLAG.File)

Hättets du da einen Tipp für mich?
Geht hier auch mit Pfaden die Leerzeichen enthalten einwandfrei! Ein zusätzliches HInzufügen von Anführungszeichen ist nicht erforderlich. Du musst hier aber wissen das du nur als Administrator in das ProgramFiles Verzeichnisse schreiben kannst! Diese Verzeichnisse sind besonders geschützt.
Bitte warten ..
Mitglied: duschgas
23.02.2016 um 12:59 Uhr
Danke, es hat doch funktioniert, es war mein Fehler
Bitte warten ..
Mitglied: 126919
23.02.2016, aktualisiert um 13:02 Uhr
Noch als Zusatz: Wenn du Hardlinks erstellen willst geht das auch

01.
<DllImport("kernel32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
02.
Private Shared Function CreateHardLink(ByVal lpFileName As String, ByVal lpExistingFileName As String, ByVal lpSecurityAttributes As IntPtr) As Boolean
03.
End Function
Bitte warten ..
Mitglied: duschgas
23.02.2016 um 18:12 Uhr
Vielen Dank, du bist die Rettung
Bitte warten ..
Ähnliche Inhalte
Windows Netzwerk
Windows Share von Symlink-Ordnern
gelöst Frage von EnzephaloNWindows Netzwerk4 Kommentare

Hallo Ich habe hier ein eigenartiges Phänomen auf einem Windows 2008 Server. Ich habe einen Pfad G:\Dateien\Bilderfreigaben. Dieser Pfad ...

Sicherheitsgrundlagen

Typo3 Composer-Installation - Symlink auf fileadmin

Frage von HeimdalSicherheitsgrundlagen1 Kommentar

Hallo, bisher habe ich typo3 immer paketbasiert installiert allerdings habe ich mich mit der neuen Version 9.5 an die ...

Visual Studio

Vb.net dynamische Logik

Frage von theoberlinVisual Studio6 Kommentare

Hallo zusammen, In der Hoffnung hier tummeln sich auch vb.net programmierer würde ich euch gern eine Frage stellen: Ich ...

Visual Studio

VB.Net asynchrone Clientssockets

Frage von Phreak87Visual Studio3 Kommentare

Hallo, ich möchte mir einen WebSocket-Client bauen und habe dabei folgendes Problem: Wenn die Verbindung zum Server aufgebaut wurde ...

Neue Wissensbeiträge
Windows Installation

Windows Install ISO mit übergroßer Install.wim auf FAT32 übertragen

Tipp von Lochkartenstanzer vor 3 TagenWindows Installation9 Kommentare

Moin Kollegen, Viele von euch werden sicher aus praktischen Gründen nicht nur DVDs oder "virtuelle" CD-Laufwerke (Zalman, IODD) zum ...

Datenschutz

Gehe zurück auf Los, ziehe keine 4.000 Mark. E-Privacy (erstmal) gescheitert

Information von certifiedit.net vor 4 TagenDatenschutz

Webbrowser

Firefox 71 verfügbar mit Picture in Picture Funktion

Information von sabines vor 4 TagenWebbrowser2 Kommentare

Die neue Firefox Version 71 unterstützt, zunächst nur für Windows, Picture in Picture. Damit kann ein Video in einem ...

E-Mail
SPF beim Versenden testen
Tipp von StefanKittel vor 6 TagenE-Mail3 Kommentare

Hallo, wenn man einen SPF für einen Exchange, oder anderen Mail-Server, konfigiruert muss man das ja auch testen. Ganz ...

Heiß diskutierte Inhalte
E-Business
Brainstorming: Zeiterfassungs- oder gesamtes Abrechnungssystem
Frage von certifiedit.netE-Business23 Kommentare

Guten Abend, alles neu macht der, naja, schon lange nicht mehr, Mai Zum Ende des Jahres, besser zum Beginn ...

MikroTik RouterOS
Mikrotik Router empfehlenswert?
Frage von matze2090MikroTik RouterOS15 Kommentare

Hallo, ich würde gerne mir Mikrotik anschauen. Reicht dieser Router zum erstmal Test? Er Kostet ca 23€. Ich habe ...

Netzwerkmanagement
Hausverkabelung auf billig für 8
Frage von AmateurverkablerNetzwerkmanagement10 Kommentare

Hallo Community, ich bin in eine Haus-WG eingezogen welche 7 Zimmer hat und eine Einliegerwohnung. Der Vermieter hat in ...

Windows 10
MS Edge in Win10Pro sperren
gelöst Frage von ad-minWindows 109 Kommentare

Guten Abend, wie kann ich in Windows 10 Professional (1909) MS Edge sperren? (Standardbenutzer, nutze lokale GPO) Vielen Dank! ...