Hola Señoritas und Senors,
hoffe ihr seid noch nicht dahingeschmolzen. Ich komme nach einiger Zeit mal wieder nicht weiter; vielleicht auch nur eine Gedankenblockade.
Mein Vorhaben ist es ca. 100.000 Dateien zu löschen (ja, so ist der Auftrag; wegen meiner aber auch moven) allerdings mit einer 5000 Einträge-Großen Ausschussliste. Die Größe der Ausschussliste habe ich natürlich erst kurz vor knapp erfahren; wie immer. Habt ihr da eine Idee, wie das ganze umgesetzt werden kann? Die normale .net-File.Delete()_Methode bietet ja keine Ausschussliste-Möglichkeit an. Unterordner sollten hier auch berücksichtigt werden. Vielleicht hat da jemand wat im Hinterkopf von euch?
So habe ich es im kleinen Stil umgesetzt. Aber ich denke nicht, dass man das so auf 100.000 Dateien umsetzen sollte.
Wie immer; besten Dank!
Toorms
hoffe ihr seid noch nicht dahingeschmolzen. Ich komme nach einiger Zeit mal wieder nicht weiter; vielleicht auch nur eine Gedankenblockade.
Mein Vorhaben ist es ca. 100.000 Dateien zu löschen (ja, so ist der Auftrag; wegen meiner aber auch moven) allerdings mit einer 5000 Einträge-Großen Ausschussliste. Die Größe der Ausschussliste habe ich natürlich erst kurz vor knapp erfahren; wie immer. Habt ihr da eine Idee, wie das ganze umgesetzt werden kann? Die normale .net-File.Delete()_Methode bietet ja keine Ausschussliste-Möglichkeit an. Unterordner sollten hier auch berücksichtigt werden. Vielleicht hat da jemand wat im Hinterkopf von euch?
So habe ich es im kleinen Stil umgesetzt. Aber ich denke nicht, dass man das so auf 100.000 Dateien umsetzen sollte.
VB.NET-Quellcode
- Sub Main()
- Try
- Dim strDestinationFolder As String = "D:\Debug\"
- Dim liExemptFilenames As New List(Of String)()
- #Region "Ex File List"
- liExemptFilenames.Add(strDestinationFolder & "exceptmetoo.dat")
- #End Region
- DeleteOldFiles(strDestinationFolder, True, True, liExemptFilenames)
- Catch ex As Exception
- Logger(ex.ToString, True, False, False)
- End Try
- End Sub
VB.NET-Quellcode
- Private Sub DeleteOldFiles(objAsDirectoryName As String, blnAbDeleteSubDirectories As Boolean, blnAbDeleteFolders As Boolean, objExemptFileNames As IEnumerable(Of String))
- If blnAbDeleteSubDirectories Then
- Dim strSubdirectoryName As String
- For Each strSubdirectoryName In Directory.GetDirectories(objAsDirectoryName)
- DeleteOldFiles _
- (strSubdirectoryName,
- blnAbDeleteSubDirectories,
- blnAbDeleteFolders,
- objExemptFileNames)
- If blnAbDeleteFolders Then
- Directory.Delete(strSubdirectoryName)
- End If
- Next
- End If
- Dim strFileName As String
- For Each strFileName In Directory.GetFiles(objAsDirectoryName)
- If objExemptFileNames.Contains(strFileName) Then
- Console.WriteLine("Skipped: " & strFileName)
- Logger(strFileName, False, False, True)
- Else
- File.Delete(strFileName)
- Logger(strFileName, False, True, False)
- End If
- Next
- End Sub
Wie immer; besten Dank!
Toorms