Ordner im lokalen Netzwerk freigeben ohne Schreibschutz

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Westerwälder.

    Ordner im lokalen Netzwerk freigeben ohne Schreibschutz

    Hallo,
    ich möchte ein Verzeichnis zu bestimmten Zeiten auf meinem Rechner im lokalen Netzwerk freigeben. Hierfür habe ich folgenden Code gefunden:

    VB.NET-Quellcode

    1. If Programm.IstHostOnline = False Then
    2. Const IsFileShare As Integer = 0
    3. Const Max_Connections As Integer = 10
    4. Dim Share_Info As String() = {"C:\MBSERVER", "Host", CStr(IsFileShare), _
    5. CStr(Max_Connections), "Von PC01 bereitgestellte Daten"}
    6. Dim Win_Shares As ManagementClass = New ManagementClass("Win32_Share")
    7. Try
    8. Win_Shares.InvokeMethod("Create", Share_Info)
    9. Catch ex As System.Management.ManagementException
    10. MessageBox.Show(ex.ToString)
    11. Me.TS_UpdateService.Text = "Daten auf Host freigeben"
    12. Return
    13. Finally
    14. Win_Shares.Dispose()
    15. End Try
    16. MessageBox.Show(Share_Info(0) + " erfolgreich erstellt!")
    17. Me.TS_UpdateService.Text = "Daten auf Host sperren"
    18. Exit Sub
    19. End If

    Wie stelle ich es nun an, dass andere Rechner im Netzwerk die Daten bearbeiten können, sprich wie hebe ich den Schreibschutz auf?
    Gruß Markus
    Danke Dir für den Hinweis,
    dass mit dem Schreibschutz von Dateien habe ich schon gelesen. Da es sich um wirklich viele Dateien handelt, dachte ich, es gebe vielleicht eine Möglichkeit direkt bei der Freigabe des Verzeichnisses dies zu umgehen.
    Gruß Markus
    Habe die Attribute mit folgenden Code zurückgesetzt:

    VB.NET-Quellcode

    1. Public Function RemoveWriteProtection(ByVal sFile As String) As Boolean
    2. Dim bResult As Boolean = True
    3. If Not File.Exists(sFile) Then
    4. ' Falls Datei nicht existiert...
    5. bResult = False
    6. Else
    7. ' aktuell gesetzte Datei-Attribute ermitteln
    8. Dim oInfo As New FileInfo(sFile)
    9. With oInfo
    10. Try
    11. If CBool(.Attributes And FileAttributes.ReadOnly) Then
    12. ' Datei ist schreibgeschützt
    13. ' Jetzt Schreibschutz-Attribut entfernen
    14. .Attributes = .Attributes Xor FileAttributes.ReadOnly
    15. End If
    16. Catch
    17. ' Fehler beim Lesen/Setzen der Datei-Attribute
    18. bResult = False
    19. End Try
    20. End With
    21. End If
    22. Return bResult
    23. End Function


    Nun ist es so:
    Bei der Überprüfung der Attribute mit Eigenschaften, sind die Dateien nicht mehr schreibgeschützt, aber
    öffne ich eine Datenbank mit Accsess, erhalte ich den Hinweis, dass die Datenbank schreibgeschützt geöffnet wird.

    Petaod: Dein Vorschlag hilft mir leider auch nicht weiter

    Habe noch eine andere Variante getest:

    VB.NET-Quellcode

    1. Private Sub Schreibschutz_Aufheben(Verzeichnis As System.IO.DirectoryInfo)
    2. Dim Unterverzeichnis As IO.DirectoryInfo
    3. Dim Datei As IO.FileInfo
    4. For Each Datei In Verzeichnis.GetFiles()
    5. IO.File.SetAttributes(Datei.FullName, IO.FileAttributes.Normal)
    6. Next
    7. For Each Unterverzeichnis In Verzeichnis.GetDirectories()
    8. Schreibschutz_Aufheben(Unterverzeichnis)
    9. Next
    10. End Sub


    Hier erhalte ich die Fehlermeldung:
    Der Zugriff auf den Pfad "\\PC01\Host\DATA\Bild.mdb" wurde verweigert.
    Denke es liegt daran, dass es ein Netzwerkpfad ist und Windows 7 dies nicht zulässt.
    Gruß Markus

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Westerwälder“ ()