View Full Version : [VB] muovere un file tra directory
devilchan
14-02-2005, 21:51
Ciao ragzzi,
in Vb mi dite come si fa a spostare un file da una directori ad un altra? Io uso Visual Basic 6 e devo spostare il file c:\prova.txt nella cartella c:\visual\.
Grazie a tutti
Molto semplicemente usando la funzione: FileCopy
Mi sa che MoveFile va meglio per il suo caso.
Va bhe dai anche il FileCopy va bene, così nn deve richiamare per forza l'api :oink:
non conosco FileCopy, ma penso che sia analoga all'API CopyFile; in tal caso è diversa da MoveFile, non è la stessa cosa; non esiste una analoga a MoveFile?
Che io sappia, già incluso dentro VB no! Bisogna proprio richiamare la funzione API :oink:
devilchan
17-02-2005, 12:39
Ragazzi non funziona.
Ma devo dikiarare qualke cosa prima di scrivere questo comando?
Mi fate un esempio pratico di come diavolo si usa sto programma, è tanto semplice ma non funziona.
Garazie
Io te lo detto, se usi il FileCopy, basta che dai il sorgente e la destinazione!
Es: FileCopy "C:\ciao.txt", "C:\Temp\ciao.txt"
Ma magari a lui non interessa copiarlo, magari lo deve solo spostare; potrebbe copiarlo e poi cancellare l'originale, ma in tal caso l'operazione richiederebbe un tempo direttamente proporzionale alla dimensione del file.
eheheheh dipende se è un lamer, e vuole copiare un exe lanciato da un altra parte... nn potrebbe muovere se stesso!
hehehehehe
dai che ti prendiamo in giro :p
devilchan
17-02-2005, 21:25
non mi interesa copiarlo ma solo spostarlo.
Cosa devos crivere?
Cmq FileCopy "C:\ciao.txt", "C:\Temp\ciao.txt" non funziona mi da errore 75 io devo spostare il file kiamato prova.txt (c:\prova.txt) nella cartella c:\cartella\
come diavolo si fa?
Ti da errore perchè molto probabilemte o nn esiste il file o nn esiste la cartella di destinazione.
Cmq quella cosa funziona così:
Private Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long
Private Sub Form_Load()
MoveFile "c:\prova.txt","c:\visual\prova.txt"
End Sub
devilchan
18-02-2005, 01:46
Ultima curiosità, sapete far autodistruggere un file?
Del tipo io esegue il file prova.exe e alla fine dell'esecuzione si auto cancella?
... e continua a dire di non essere un lamer :D
comunque un programma non può cancellare se stesso perché il file dell'eseguibile è in lettura da parte del sistema operativo (che lo sta eseguendo); hai essenzialmente due possibilità:
1) se per te va bene che il programma si autodistrugga al successivo avvio di Windows, prima di terminare puoi mettere nel registro di sistema alla chiave Run un valore col comando DEL riferito al tuo file;
2) puoi trovare il modo di farti cancellare da qualche altro processo.
comunque se stai cercando di programmare un virus/trojan/keylogger o roba simile, tieni presente che con Visual Basic non ci riuscirai mai! Usa Visual C++ 6.0 oppure Open Watcom, secondo me sono i must-have del vero lamer! :D
se magari sei più specifico e ci dici esattamente cosa deve fare questo tuo "programma di configurazione" (:D) ti si può aiutare meglio... :p
devilchan
18-02-2005, 17:42
essenzialmene il mio programma non deve far nulla.
E ti spiego il perchè.
Da poco ho ripreso ad utilizzare il Vb abbandonato da qualke anno, e nella mia testa ci sono tanti progetti e curiosità che voglio soddisfare, in ogni caso per le specifiche del programma magari te e posso dare anke in pvt e non qui.Cmq al contrario di cio ke dici, non mi voglio ne fare virus troian o quantaltro, ma voglio realizzare un full suite di informazioni per future e piu serie applicazioni.Se fai caso quasi da nessuna parte sta scritto come far autodistruggere un programma.
Se metto nel reg la voce del + Path in ogni caso rimarra nel registro tale voce.
Mi piacerebbe optare per la seconda.Come faccio?
Originariamente inviato da devilchan
Se metto nel reg la voce del + Path in ogni caso rimarra nel registro tale voce.
no se la metti in RunOnce ;)
Mi piacerebbe optare per la seconda.Come faccio?
in VB di certo non puoi (e 2!) :D
ma perché vuoi usare i pvt, che oltrettutto non li guardo mai :p? mmah, per quanto tu possa dire, qui la cosa continua a subodorarmi di segreto e di misterioso... (puzza di bruciato! :D)
devilchan
19-02-2005, 00:16
che chiave dovrei scrivere nel regieto quindi?
esempio: il file è c:\prova.txt , cosa scrivo?
non capisco, a che serve ora il txt? non dovevi autodistruggere l'exe?
cmq, per autodistruggere un programma in esecuzione, il programma stesso deve scrivere un valore alla chiave
HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce
e il valore deve contenere
DEL /Q <file name>
dove ovviamente al posto di <file name> ci devi mettere il percorso completo del tuo eseguibile.
A dire il vero non ho mai provato, ma dovrebbe funzionare. E' possibile che tu debba mettere il nome DOS anziché quello completo.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.