Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    234

    Comando FileCopy. Perfavore aiutatemi!!!

    il mio problema è col comando FileCopy (cioè copia file) a Visual Basic 6. Io ho creato una listbox (File1) in cui vengono visualizzati dei file. Selezionando uno di questi file dò esecuzione a un programma in dos esterno. Quando uso il comando copy file al posto della vecchia directory in cui il file è posto voglio che questa vecchia directory prenda il nome dal file della listbox selezionato.

    FileCopy "C:dir1\0.bmp", "directory qualunque"

    dove ho scritto dir1 ci deve essere un percorso ma il percorso varia a seconda del file che seleziono nella listbox, e a seconda di quello che seleziono la cartella ha il suo stesso nome. In pratica se nella list box seleziono il file adri.txt il percorso sarà così:

    FileCopy "C:Adri\0.bmp", "directory qualunque"

    quindi il percorso varia a seconda del file che seleziono in questo caso Adri.txt
    Io voglio che questo percorso vari da solo a seconda del nome del file che seleziono nella Listbox (File1)

    FileCopy "QUI COSA SCRIVO?\0.bmp", "directory qualunque"

    lì quale comando devo scrivere per variare il nome della cartella a seconda del nome del file selezionato nella listbox?

    penso di essere stato più chiaro
    rispondi al + presto
    Adriano Foschi

  2. #2
    se ho ben capito questo codice dovrebbe fare quello che cerchi:
    N.B. inserisci in un form "FORM1" i seguenti componenti:

    una TextBox chiamata "txt_curDir"
    una TextBox chiamata "txt_newDir"
    una ListBox chiamata "ListBox"
    un Command button chiamato "cmd_visualizza"

    poi:
    codice:
    Option Explicit
    Dim dir_corrente As String
    
    Private Sub cmd_visualizza_Click()
        On Error GoTo cattura_exception
        Dim ptr_file1 As String
        dir_corrente = txt_curDir.Text & "\*"
        If dir_corrente <> "" Then
            ListBox.Clear
            ptr_file1 = Dir$(dir_corrente)
            While ptr_file1 <> ""
                ListBox.AddItem ptr_file1
                ptr_file1 = Dir$
            Wend
        Else
            txt_curDir = "inseire un percorso es: ""C:\Documenti"""
        End If
    cattura_exception:
        txt_curDir.Text = "Percorso non valido"
    End Sub
    
    Private Sub ListBox_Click()
        On Error GoTo cattura_exception
        Dim ptr_file1, ptr_file2 As String
        ptr_file1 = ListBox.Text
        ptr_file2 = Replace(ListBox.Text, Right$(ListBox.Text, 4), "")
        MkDir txt_curDir.Text & "\" & ptr_file2
        FileCopy txt_curDir.Text & "\" & ptr_file1, txt_curDir.Text & "\" & ptr_file2 & "\" & ptr_file1
        txt_newDir.Text = ptr_file2
    cattura_exception:
        txt_newDir.Text = "Directory già esistente, Impossibile copiare il file"
    End Sub

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    327
    Non si capisce molto ma comunque, quando carichi la listbox potresti mettere in fondo già il percorso giusto tipo

    listbox.additem "adri.txt" & space(200) & "C:\ADRI\0.bmp"

    Lo space(200) serve per mettere 200 spazi tra adri.txt e il percorso, in modo che in visualizzazione il percorso non si vede.

    per recuperarlo fai

    nomefile=Trim(Right(listbox.list(listbox.listindex ),100))

    FIleCopy nomefile, "directory qualsiasi"

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    234

    codice errato

    ascolta Jonny Dhep questo codice è errato perchè deve copiare il file da una directory già esistente, non crearne una nuova. E questa directory esistente deve avere lo stesso nome del file selezionato nella listbox e copiare un file qualunque da questa cartella già esistente.

    se puoi aggiustare il codice perfavore..

    Adrix

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    234
    allora, devo solo dirgli di copiare un file dalla cartella che ha il nome uguale al file selezionato nella listbox, in un'altra cartella qualunque.
    Quindi:

    FileCopy "qui il comando che gli dice di andare a copiare il file dalla cartella con il nome uguale al file selezionato nella listbox\file.bmp, "C:\directory qualunque\file.bmp

    penso di essere stato chiaro
    Rispondete al + presto perfavore

    Adrix

  6. #6
    Spiegami meglio:

    faccio un esempio, tu dimmi dove sbaglio...

    tu hai una directory chiamata dirPIPPO
    all'interno ci sono due file chiamati

    0001.bmp
    0002.bmp

    in VB carichi in una ListBox i file presenti nella directory
    dirPIPPO...
    ora:
    cosa vuoi che accada quando "clickki" con il mouse
    sopra al file selezionato nella LISTBOX???????????

    FAMMI CAPIRE SOLO QUESTO.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    234

    non è così

    allora ecco dove sbagli.

    io ho una directory (es C:\adrix) che collego alla listbox in modo che nella listbox appaiono i file di quella directory. In questa directory c'è una cartella chiamata FTB. Il nome di questa cartella corrisponde al nome di un file che è in (c:\adrix) che si chiama sempre FTB.bmp. Io devo copiare un file da dentro FTB in C:\Adrix
    però non devo scrivere il comando così:

    FileCopy "C:\Adrix\FTB\File.txt", "C:\Adrix\File.txt"

    ma voglio che il nome della cartella FTB vari a seconda del file che seleziono nella listbox. Se nella listbox seleziono il file GHI.bmp il comando apparirà così.

    FileCopy "C:\Adrix\GHI\File.txt", "C:\Adrix\File.txt"

    io voglio che la directory da cui copio il file cioè la prima (C:\Adrix\GHI\File.txt) vari nel comando a seconda del file che vado a selezionare nella listbox.

    capito?
    Adrix

  8. #8
    DOMANDA:

    1)la directory FTB si trova dentro la directory ADIX?

    2)il file nella directory FTB ha lo stesso nome della directory
    solo che ha estenzione .bmp?

    3)in ADRIX è già presente un file con lo stesso nome del file
    che si trova all'interno di FTB?

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    234
    le prime due domande la risposta è si
    mentre per la terza sì ci sarà un file con lo stesso nome.

    riesci a darmi il codice funzionante? se ci riesci 6 un grande!!


    rispondi presto

  10. #10
    codice:
    Private Sub Form_Load()
        txt_curDir = "C:\Documenti\adrix\FTB"
    End Sub
    
    Private Sub cmd_visualizza_Click()
        Dim dir_corrente As String
        Dim ptr_file1 As String
        dir_corrente = txt_curDir.Text & "\*"
        If dir_corrente <> "" Then
            ListBox.Clear
            ptr_file1 = Dir$(dir_corrente)
            While ptr_file1 <> ""
                ListBox.AddItem ptr_file1
                ptr_file1 = Dir$
            Wend
        Else
            txt_curDir = "inseire un percorso es: ""C:\Documenti"""
        End If
    End Sub
    
    Private Sub ListBox_Click()
        Dim ptr_file1, ptr_file2 As String
        ptr_file1 = ListBox.Text
        ptr_file2 = Replace(ptr_file1, Right$(ptr_file1, 4), "")
        FileCopy txt_curDir.Text & "\" & ptr_file1, "C:\DOCUMENTI\ADRIX\" & ptr_file1
        Text1.Text = txt_curDir.Text & "\" & ptr_file1
        Text2.Text = "C:\DOCUMENTI\ADRIX\" & ptr_file1
        txt_newDir.Text = ptr_file2
    End Sub
    UNICO PROBLEMA:

    Se cerchi di copiare nella directory ADRIX
    un file .BMP avente lo stesso nome di un file già presente
    in ADRIX ti genera errore!!!

    potresti concatenare una variabile "contatore"
    ad ogni file che copi nella directory principale ADRIX
    rendendo così univoco il nome dei file .BMP

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 © 2024 vBulletin Solutions, Inc. All rights reserved.