Avatar billede joergen_vinther Nybegynder
02. oktober 2007 - 15:41 Der er 7 kommentarer og
1 løsning

Kopier Fil fra et directory til et andet i et VB-Program..

Jeg roder med et Install-Program og er løbet ind i et problem.
Hvordan får man et VB-Program til at kopiere en fil f. eks. fra A-Drevet til et directory på C-Drevet. På forhånd tak.
Avatar billede olebole Juniormester
03. oktober 2007 - 02:13 #1
<ole>

En form med en knap:

Option Explicit

Const FO_COPY = &H2
Const FO_DELETE = &H3
Const FO_MOVE = &H1
Const FO_RENAME = &H4

Const FOF_ALLOWUNDO = &H40
Const FOF_SILENT = &H4
Const FOF_NOCONFIRMATION = &H10
Const FOF_RENAMEONCOLLISION = &H8
Const FOF_NOCONFIRMMKDIR = &H200
Const FOF_FILESONLY = &H80

Private Type SHFILEOPSTRUCT
    hwnd      As Long
    wFunc    As Long
    pFrom    As String
    pTo      As String
    fFlags    As Integer
    fAborted  As Boolean
    hNameMaps As Long
    sProgress As String
End Type

Private Declare Function SHFileOperation Lib "shell32.dll" _
    Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long


Private Sub Command1_Click()
    Dim lFileOp  As Long
    Dim lFlags  As Long
    Dim lresult  As Long
    Dim SHFileOp As SHFILEOPSTRUCT
   
    lFileOp = FO_COPY
    With SHFileOp
        .wFunc = lFileOp
        .pFrom = "A:/sti/til/fil.jpg" & vbNullChar & vbNullChar
        .pTo = "C:/sti/til/mappe/med/ny/fil.jpg" & vbNullChar & vbNullChar
        .fFlags = lFlags
    End With
    lresult = SHFileOperation(SHFileOp)
   
    If lresult <> 0 Or SHFileOp.fAborted Then Exit Sub
   
    MsgBox "Yups ... færdig!"
End Sub


/mvh
</bole>
Avatar billede sjh Nybegynder
03. oktober 2007 - 08:41 #2
Du kan også bruge vb´s egen FileCopy()


' -------------------------- Form1 --------------------------
Option Explicit

' Opretter x antal mapper
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp" (ByVal lpPath As String) As Long

Private Sub Form_Load()
Dim strSource As String
Dim strDestination As String

  strSource = "A:\filename.txt"
  strDestination = "C:\mappe1\mappe2\mappe3\filename.txt"
 
  ' Opretter de 3 mapper : (C:\mappe1\mappe2\mappe3\) før der kopieres.
  MakeSureDirectoryPathExists strDestination

  ' Kopier (strSource til strDestination)
  FileCopy strSource, strDestination
End Sub
' -------------------------- Form1 --------------------------



Her er også lidt muligheder :
http://vbnet.mvps.org/code/shell/shdirectorycopy.htm (Mappe kopier eller flyt)
http://vbnet.mvps.org/code/fileapi/copyfile.htm (Kopier mange filer til en mappe)

Se flere her (Copying) :
http://vbnet.mvps.org/code/fileapi/
Avatar billede joergen_vinther Nybegynder
03. oktober 2007 - 11:46 #3
Hej olebole og sjh. Tak for svarene. Jeg synrs de er lidt uoverskuelige - Jeg er 71 år - Kan I ikke skrive de få kommandoer, som skal til, og evt. kommentere dem ?
M.V.H. Jørgen.
Avatar billede sjh Nybegynder
03. oktober 2007 - 14:52 #4
Smid en knap på dit vindue (Form1)

Private Sub Command1_Click()
  ' Kopier en tekst-fil fra A:\ til C:\
  FileCopy "A:\filename.txt", "C:\filename.txt"
End Sub
Avatar billede sjh Nybegynder
03. oktober 2007 - 14:54 #5
godt gået i din alder.. :D
Avatar billede joergen_vinther Nybegynder
04. oktober 2007 - 02:23 #6
Hej sjh.

    Det var kommandoen "FileCopy" jeg manglede. Gud hvor er det nemt, når man kender kommandoerne. Tak for hjælpen. Send et svar, så du kan få dine point.

Hilsen Jørgen.
Avatar billede sjh Nybegynder
04. oktober 2007 - 06:47 #7
Okææ..
Avatar billede olebole Juniormester
06. oktober 2007 - 03:30 #8
- sæ'fø'li'! Jeg kan godt se, jeg vadede over en bred flod - blot for at få et snapseglas vand med hjem  ;o)
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

IT-JOB