Toon posts:

[vb.NET] complete directory and content copieren.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een programma die een map moet backuppen (copieren naar een andere locatie). Maar in de deze map staan directories met files. Het is me wel gelukt om bestanden te kopieren. Maar nu wil ik dus dat hij de complete structuur ook zo over neemt. Ik heb nu dit, maar ik krijg de directory naam niet naam voren alleen het hele pad dus: d:\_documenten\mapje1 ipv mapje1

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim mijnDocumentenDir As String = "D:\_documenten\"
        Dim file, fileName As String
        Dim dir As String

        'Each directory
        For Each dir In Directory.GetDirectories(mijnDocumentenDir)

            'Dir zou dan mapje 1 moet zijn ipv d:\_documenten\mapje1

            'Directory.CreateDirectory(backupPath + "\mijn documenten\ + dir")

            'Each file
            'Get all the files from the outlook directory
            'For Each file In Directory.GetFiles(dir, "*")

            '    'Get the filename without the directory.
            '    fileName = Path.GetFileName(file)

            '    'Start copying the files to backupPath\outlook
            '    FileCopy(mijnDocumentenDir + fileName, backupPath + "\mijn documenten\" + fileName)
            'Next
        Next

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 21-05 00:41

WPN

je krijgt nu d:\_documenten\mapje1

waarom knip je d:\_documenten\ er niet vanaf voordat je Directory.Create..... doet?

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


Verwijderd

Topicstarter
en hoe doe ik dat dan?
Met split ofzo?

code:
1
2
Dim myArray() As String = Split(dir, "d:\_documenten\")
            MessageBox.Show(myArray(0))

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Je loopt toch langs alle mappen. Dan heb je toch ook de current map waar hij de content van pakt. Ik zie even je probleem niet.

code:
1
dir.Path + fileName


Zo iets moet het dan worden.

Verwijderd

Topicstarter
Dat snap ik dat moet het ook worden. Maar ik krijg dus het pad D:\_documenten\mapje1. Ik moet dus alleen die mapnaam hebben. mapje 1 dus.

Of is er een andere manier om een directory structuur + files te backuppen?

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

C#:
1
string path = dir.Path.Remove( 0, 21 );


Dit moet je zelf ook kunnen bedenken.

edit:
Code niet getest, typ het zo uit me hoofd. Maar je snapt de bedoeling denk ik wel.

[ Voor 34% gewijzigd door pjvandesande op 29-06-2004 19:53 ]


Verwijderd

Van rechts naar links uitlezen tot je een backslash tegenkomt?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:52
Hmmm, ipv met die string functies te pielen kan je best eens naar de static methods van de Path class kijken. Met string functies pielen is error-prone in dit geval.

https://fgheysels.github.io/

Pagina: 1