| |
VB.NET - Ein- und UmsteigerRe: Datein eines Verzeichnisses aufrufen (geht nicht) | | | Autor: iComupterfreak | Datum: 29.11.12 14:39 |
| Ja danke, mir ist schon klar, dass dies mit Try Catch geht, aber ich wusste nicht so genau, wohin ich den Block setzen musste. Jeztt hab ich ihn einfach um den ganzen Block gesetzt.
Vielen Dank aber für deine Hilfe
_______________________________________________________________________
Heute stehen wir am Abgrund. Morgen sind wir schon einen Schritt weiter.
iComputerfreak | |
Datein eines Verzeichnisses aufrufen (geht nicht) | | | Autor: iComupterfreak | Datum: 28.11.12 17:19 |
| HI, ich möchte die Dateien eines Verzeichnisses in einer Variablen speichern.
Das mache ich mit IO.Directory.GetFiles(Verz.) Jetzt ist aber das Problem, dass ich auf manche Ordner dieses Verzeichnisses keinen Zugriff habe.
Kann ich dann mit
For Each File in IO.Directory.GetFiles(Verz.) die Dateien einzeln durchlaufen und mit einer Fehlerabsicherung in einem Array speichern?
Meines Wissens nach durchläuft er aber dann auch alle Dateien und kommt dann auch zu einem Fehler, da er auf manche Ordner keinen Zugriff hat.
Bitte um schnelle Antwort
_______________________________________________________________________
Heute stehen wir am Abgrund. Morgen sind wir schon einen Schritt weiter.
iComputerfreak
Beitrag wurde zuletzt am 28.11.12 um 17:22:54 editiert. | |
Re: Datein eines Verzeichnisses aufrufen (geht nicht) | | | Autor: Manfred X | Datum: 28.11.12 17:28 |
| Hallo!
Nein. Ein rekursives Durchlaufen der Unterordner ist
erforderlich.
MfG
Manfred | |
Re: Datein eines Verzeichnisses aufrufen (geht nicht) | | | Autor: iComupterfreak | Datum: 28.11.12 17:38 |
| Mist!
Mein Problem lag wo anders.
Er konnte die Dateien nicht auflisten, weil er keinen Zugriff auf den Ordner hat, in dem sie sich befinden.
Jetzt habe ich aber dann ein anderes Problem, bei der Fehlerabsicherung.
Am besten ich schreib jetzt hier mal meinen ganzen Code:
Module Module1
Sub Main()
Do
Dim command As String = Console.ReadLine()
command = command.ToLower
Select Case command
Case "stop"
Exit Sub
Case "save"
Console.WriteLine()
Console.WriteLine("--------------------")
Console.WriteLine("Folgende Dateien konnten nicht kopiert" & _
"werden:")
Console.WriteLine()
Dim datefolder As String = "Z:\Sicherung_" & Now.Day & "_" _
& Now.Month & "_" & Now.Year
IO.Directory.CreateDirectory(datefolder)
CopyFolder("C:\Users\Jonas", datefolder & "\C\Users\Jonas")
CopyFolder("C:\Server Backup", datefolder & "\C\Server" & _
"Backup")
CopyFolder("C:\Temp", datefolder & "\C\Temp")
CopyFolder("B:\", datefolder & "\B")
CopyFolder("F:\", datefolder & "\F")
End Select
Loop
End Sub
Public Sub CopyFolder(ByVal Source As String, ByVal Dest As String, _
Optional ByVal CopySub As Boolean = True, Optional ByVal Overwrite As _
Boolean = True)
If Not System.IO.Directory.Exists(Dest) Then
System.IO.Directory.CreateDirectory(Dest)
End If
Dim Files() As String
Try
files = IO.Directory.GetFiles(Source)
Catch ex As System.UnauthorizedAccessException
Console.WriteLine("Ordner """ & Source & """ konnte nicht kopiert" & _
"werden.")
End Try
Dim File As String
For i As Integer = 0 To Files.Length - 1
File = Files(i).Substring(Files(i).LastIndexOf("\") + 1)
If Overwrite Or Not System.IO.File.Exists(Dest & "\" & File) Then
Try
System.IO.File.Copy(Files(i), Dest & "\" & File, True)
Catch ex As Exception
Console.WriteLine(Files(i))
End Try
End If
Next i
If CopySub Then
Dim sDirs() As String = System.IO.Directory.GetDirectories(Source)
Dim sDir As String
For i As Integer = 0 To sDirs.Length - 1
If sDirs(i) <> Dest Then
sDir = sDirs(i).Substring(sDirs(i).LastIndexOf("\") + 1)
CopyFolder(sDirs(i), Dest & "\" & sDir, True, Overwrite)
End If
Next
End If
End Sub
End Module Also.
Ganz unten bei If CopySub then... da ist ja der rekursive Aufruf. Und ganz oben im Sub ist ja das, dass er alle Dateien Auflistet. Und bei der Fehlerabsicherung komm ich jetzt nicht weiter. Wenn er keinen Zugriff auf den Ordner hat(UnauthorizedAccessException), Dann soll er den Ordner überspringen. Jetzt weiss ich aber nicht wo er dann hin springen soll, weil ich ja nicht weis, ob er noch im ersten ordern ist, oder schon im rekursiven aufruf. Das ist irgenwie etwas kompliziert
_______________________________________________________________________
Heute stehen wir am Abgrund. Morgen sind wir schon einen Schritt weiter.
iComputerfreak | |
Re: Datein eines Verzeichnisses aufrufen (geht nicht) | | | Autor: Manfred X | Datum: 28.11.12 17:54 |
| Hallo!
Try ... Catch ...?
http://www.vbarchiv.net/forum/read.php?f=22&t=19269&i=19305
Erst eine Dateiliste erstellen.
Diese Liste zum Kopieren durchlaufen unter Nutzung der IO.Path-Klasse.
(GetFilename / Combine).
MfG
Manfred
Beitrag wurde zuletzt am 28.11.12 um 18:11:28 editiert. | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere Infos
|
|
|
Copyright ©2000-2024 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
|
|