Huhu Gemeinde.
Ich entwickel momentan ein Sicherungstool/Wiederherstellungstool.
In diesem Tool sind die Pfade schon definiert, die gesichert und wiedergestellt werden sollen.
Ergibt:
Dann in eine
Die
Das Problem ist der Ordner
Error:
Ich habe keinen Schimmer, wie ich die drei Hardlinks (Ordner) ignorieren kann.
Ja, mit
Wie könne man das lösen?
Hatte schon so gedacht, vorher zu überprüfen, ob die Ordner vorhanden sind - falls doch, dann löschen, aber hier wiederum benötigt man Adminrechte. Das Programm soll aber nicht mit Adminrechte gestartet werden.
Ich entwickel momentan ein Sicherungstool/Wiederherstellungstool.
In diesem Tool sind die Pfade schon definiert, die gesichert und wiedergestellt werden sollen.
VB.NET-Quellcode
- Dim array() As String = {
- GetFolderPath(SpecialFolder.Desktop) + "\",
- GetFolderPath(SpecialFolder.UserProfile) + "\Downloads\",
- GetFolderPath(SpecialFolder.MyPictures) + "\",
- GetFolderPath(SpecialFolder.MyDocuments) + "\",
- GetFolderPath(SpecialFolder.MyMusic) + "\",
- GetFolderPath(SpecialFolder.MyVideos) + "\",
- GetFolderPath(SpecialFolder.Favorites) + "\",
- GetFolderPath(SpecialFolder.UserProfile) + "\Links\",
- GetFolderPath(SpecialFolder.ApplicationData) + "\Microsoft\Signatures\",
- GetFolderPath(SpecialFolder.ApplicationData) + "\SAP\",
- GetFolderPath(SpecialFolder.ApplicationData) + "\Microsoft\OneNote\",
- GetFolderPath(SpecialFolder.LocalApplicationData) + "\Microsoft\OneNote\"
- }
Ergibt:
XML-Quellcode
- 'C:\Users\[user]\Desktop\
- 'C:\Users\[user]\Downloads\
- 'C:\Users\[user]\Pictures\
- 'C:\Users\[user]\Dokumente\
- 'C:\Users\[user]\Musik\
- 'C:\Users\[user]\Videos\
- 'C:\Users\[user]\Favorites\
- 'C:\Users\[user]\Links\
- 'C:\Users\[user]\AppData\Roaming\Microsoft\Signatures\
- 'C:\Users\[user]\AppData\Roaming\SAP\
- 'C:\Users\[user]\AppData\Roaming\Microsoft\OneNote\
- 'C:\Users\[user]\AppData\Local\Microsoft\OneNote\
Dann in eine
ListCheckBox
hinzugefügt mit der entsprechenden Ordnergröße. Zudem die Ergebnisse in eine XML-Datei geschrieben, um später die Wiederherstellung vornehmen zu können.Die
CheckListBox
befindet sich wiederum in einer GroupBox
. GroupBox.Text = "[Gesamtgröße der Ordner]"
VB.NET-Quellcode
- For Each value As String In array
- If Helper.CheckFolderExist(value.ToString()) Then
- 'Ordner vorhanden
- 'clb_LocalData.Items.Add(value, True)
- clb_LocalData.Items.Add(String.Format("{0} - {1}", value, Helper.FormatBytes(Helper.GetDirectorySize(value), "0.00")), True)
- foldersize += Helper.GetDirectorySize(value)
- Else
- 'Ordner nicht vorhanden
- 'clb_LocalData.Items.Add(String.Format("{0}", value, False))
- End If
- Next
VB.NET-Quellcode
- ''' <summary>
- ''' Ermittelt die Ördnergröße in Bytes
- ''' </summary>
- ''' <param name="path"></param>
- ''' <returns></returns>
- Public Shared Function GetDirectorySize(ByVal path As String) As Long
- 'onair
- Dim dir_size As Long = 0
- 'Try
- Dim files() As String = Directory.GetFiles(path, "*", SearchOption.AllDirectories) 'System.UnauthorizedAccessException: "Der Zugriff auf den Pfad "C:\Users\[User]\Documents\My Music" wurde verweigert."
- For Each file As String In files
- Dim info As New FileInfo(file)
- dir_size += info.Length
- Next file
- 'Catch ex As UnauthorizedAccessException
- 'Catch ex As Exception
- 'End Try
- Return dir_size
- End Function
Das Problem ist der Ordner
C:\Users\[user]\Dokumente\
. In diesem befinden sich 3 Hardlinks (zumindest habe ich gelesen, dass diese die Bezeichnung haben).Error:
System.UnauthorizedAccessException: "Der Zugriff auf den Pfad "C:\Users\[User]\Documents\My Music" wurde verweigert."
Ich habe keinen Schimmer, wie ich die drei Hardlinks (Ordner) ignorieren kann.
Ja, mit
Catch ex As UnauthorizedAccessException
klappt das auch, aber dann bricht dort ab und geht zum nächsten Ordner und die Ordnergröße von C:\Users\[user]\Dokumente\
ist 0 Byte
.Wie könne man das lösen?
Hatte schon so gedacht, vorher zu überprüfen, ob die Ordner vorhanden sind - falls doch, dann löschen, aber hier wiederum benötigt man Adminrechte. Das Programm soll aber nicht mit Adminrechte gestartet werden.
Grüße JackCimberly
Deine Anfrage erledigt?
Als erledigt markieren
Deine Anfrage erledigt?
Als erledigt markieren