Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di xnitro
    Registrato dal
    May 2007
    Messaggi
    56

    [VB] selezione di directory tramite "Sfoglia per cartelle"

    ragazzi quel problema di prima di copia delle cartelle e checkbox l'ho risolto.però mi manca l'ultima cosa.
    questo è il codice:


    Private Const FO_COPY = &H2&
    Private Const FOF_ALLOWUNDO = &H40&
    Private Const FOF_CONFIRMMOUSE = &H2&
    Private Const FOF_CREATEPROGRESSDLG = &H0&
    Private Const FOF_FILESONLY = &H80&
    Private Const FOF_MULTIDESTFILES = &H1&
    Private Const FOF_NOCONFIRMATION = &H10&
    Private Const FOF_NOCONFIRMMKDIR = &H200&
    Private Const FOF_RENAMEONCOLLISION = &H8&
    Private Const FOF_SILENT = &H4& 'Progress non visibile
    Private Const FOF_SIMPLEPROGRESS = &H100& 'non visualizzare il nome del file
    Private Const FOF_WANTMAPPINGHANDLE = &H20&

    Private Type SHFILEOPSTRUCT
    hwnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Long
    hNameMappings As Long
    lpszProgressTitle As String
    End Type

    Private Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
    Private Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" (lpFileOp As Any) As Long

    Public Function CopyFile(Source As String, Dest As String, AskOverwrite, Visib) As Boolean
    Dim lenFileop As Long
    Dim foBuf() As Byte
    Dim fileop As SHFILEOPSTRUCT
    lenFileop = LenB(fileop)
    ReDim foBuf(1 To lenFileop)
    With fileop
    .hwnd = Form1.hwnd
    .wFunc = FO_COPY
    .pFrom = Source & vbNullChar & vbNullChar & vbNullChar
    .pTo = Dest & vbNullChar & vbNullChar

    If AskOverwrite = False Then .fFlags = FOF_NOCONFIRMATION 'nn chiede la sovrascrittura
    If Visib = False Then .fFlags = .fFlags Or FOF_SILENT 'invisibile

    .lpszProgressTitle = "Copia " & Dest & vbNullChar & vbNullChar
    End With

    Call CopyMemory(foBuf(1), fileop, lenFileop)
    Call CopyMemory(foBuf(19), foBuf(21), 12)

    CopyFile = SHFileOperation(foBuf(1)) = 0

    End Function

    Private Sub Command1_Click()
    If ceckboxdocumenti Then x = CopyFile("C:\Documents and Settings\" & txt & "\documenti", "H:\", True, True)
    If ceckboxdesktop Then x = CopyFile("C:\Documents and Settings\" & txt & "\desktop", "H:\", True, True)
    If Not x Then MsgBox "Errore la cartella specificata non esiste!", vbCritical, "Errore di copia"
    End Sub


    questo è il codice e fin quà ci siamo funziona tutto, però io invece di salvarlo sempre nell'unità "H" lo vorrei salvare in altre parti, selezionando la directory per copiare le cartelle utilizzando lo "Sfoglia per cartelle".
    come fare???

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Visto che ci sono più versioni di VB, aggiungi anche la versione di riferimento che usi per chiarezza. Qui l'ho aggiunta io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    non basta cambiare il parametro Dest?
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  4. #4
    Utente di HTML.it L'avatar di xnitro
    Registrato dal
    May 2007
    Messaggi
    56
    ok ho risolto tutto.
    ora è tutto a posto ed è come lo volevo io.
    grazie lo stesso a tutti voi.
    siete grandi!!!!
    ciao.

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da xnitro
    ok ho risolto tutto.
    E quindi, qual era il problema?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it L'avatar di xnitro
    Registrato dal
    May 2007
    Messaggi
    56
    salvare le cartelle da me selezionate nel percorso dato dallo "sfoglia per cartelle" questo era il problema.
    grazie lo stesso a tutti voi.
    siete grandi.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da xnitro
    salvare le cartelle da me selezionate nel percorso dato dallo "sfoglia per cartelle" questo era il problema.
    Non volevo sapere il problema, questo già lo avevamo capito: è la soluzione che dovrebbe essere interessante.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it L'avatar di xnitro
    Registrato dal
    May 2007
    Messaggi
    56
    praticamente io apro lo "sfoglia per cartelle" da un pulsante e poi l'indirizzo della cartella che ho selezionato tramite quet'ultimo, lo faccio visualizzare sul una label così vedo l'indirizzo perchè mi interessa vederlo anche, e dopo la destinazione della copia la faccio prendere da questo label (gli scrivo nel codice che la cosa che cè scritta in questa label è l'indirizzo dove effettuare la copia.
    tutto quà.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.