vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: 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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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