Avatar billede gadebarnet Nybegynder
04. februar 2004 - 11:51 Der er 8 kommentarer og
1 løsning

copy folder

Den skal kunne:

copy folder fra c: til d:
fjerne folder fra c:

alle filer og underfoldere skal med...

og IKKE via shell
Avatar billede clausc Nybegynder
04. februar 2004 - 13:11 #1
System.IO.Directory.Move(SourceDir, DestDir)

f.eks.
System.IO.Directory.Move(@"c:\test", @"d:\test")
Avatar billede gadebarnet Nybegynder
04. februar 2004 - 13:12 #2
hvad skal de der @ gøre godt for?
Avatar billede gadebarnet Nybegynder
04. februar 2004 - 13:17 #3
Og så kan jeg ikke få den til at virke på dette

fra: \\david\ostfolder til: \\pedersen\ostfolder
Avatar billede clausc Nybegynder
04. februar 2004 - 13:42 #4
@ foran en streng betyder at der ikke skal 'escapes' mht specielle tegn, så:

@"c:\test"  er det samme som "c:\\test"

Bemærk at DestDir ikke må findes i forvejen.
Avatar billede gadebarnet Nybegynder
04. februar 2004 - 13:44 #5
Det virker ikke hvis:

fra: \\david\ostfolder til: \\pedersen\ostfolder

???
Avatar billede clausc Nybegynder
04. februar 2004 - 14:04 #6
Okay, ved nærmere læsning af docs, viser det sig at Directory.Move ikke virker på tværs af volumes.

Så du skal nok gøre noget i stil med nedenstående.

BEMÆRK: Jeg koder normalt i C# og sidder ikke pt ved en maskine med .Net på. Så koden er vejledende...

public sub CopyDir(src as string, dest as string)
  dim files() as string
  dim dirs() as string

  // find filer og foldere
  files = Directory.GetFiles(src)
  dirs = Directory.GetDirectories(src)

  // opret dest folder hvis den ikke findes
  if not Directory.Exists(dest) then Directory.CreateDirectory(dest)

  dim i as integer
  dim dest_fname as string
  dim dest_dname as string

  // kopier filerne i src-folder
  for i = 0 to files.Length - 1
    // lav dest-navn
    dest_fname = dest & files(i).SubString(src.Length)
 
    // kopier filen
    File.Copy(files(i), dest_fname)
  next i

  // kopier underfoldere ved rekursivt kald
  for i = 0 to dirs.Length - 1
    // lav dest-folder navn
    dest_dname = dest & dirs(i).SubString(src.Length)

    // kald rekursivt
    CopyDir(dirs(i), dest_dname)
  next i
end sub
Avatar billede gadebarnet Nybegynder
04. februar 2004 - 15:02 #7
lækkert...

Kan du ikke lave faktisk en der gør det samme, men den smider dem bare ud (delete)

Det må ikke være i samme sub... helst i en ny...
Avatar billede gadebarnet Nybegynder
04. februar 2004 - 15:02 #8
kun fra src...
Avatar billede clausc Nybegynder
04. februar 2004 - 16:04 #9
Directory.Delete(path, True) sletter filer og underfoldere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester