Galactus13
Messages postés335Date d'inscriptionlundi 29 septembre 2008StatutMembreDernière intervention16 août 20231 17 janv. 2012 à 19:01
100 % fonctionnel, super commenté !
Je suis en retard, mais toujours en vb5-6 ...
Quelques commandes qui me manquait pour un projet perso.
me reste plus qu'a voir comment je vais utiliser en plus court certaines fonctions !
Merci !
gmni
Messages postés91Date d'inscriptionmercredi 6 novembre 2002StatutMembreDernière intervention20 mars 2009 13 nov. 2008 à 23:34
Et bien ABF pourquoi pas ça (copier/coller un dossier/fichier):
Option Explicit
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 Function SHFileOperation Lib "shell32.dll" (lpFileOp As SHFILEOPSTRUCT) As Long
Public Function Copie(ByVal strSource As String, ByVal strDest As String) As Boolean
'
Dim varFOS As SHFILEOPSTRUCT
With varFOS
.wFunc = FO_COPY
.pFrom = strSource
.pTo = strDest
End With
Call SHFileOperation(varFOS)
Copie (varFOS.fAnyOperationsAborted 0)
'
End Function
Private Sub Command1_Click()
Copie "C:\test", "E:\test"
End Sub
cs_ABF
Messages postés227Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention26 avril 2012 25 févr. 2007 à 23:53
SAlut,
Bien bien...cependant y'a t'il un moyen de recuperer les chemins (fic ou rep) via le copier/couper/coller ou ctrl + C,V,X de l'exploreur et d'ainsi changer le gestionnaire de windows : tous comme super-copier (en Delphi)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 11 nov. 2004 à 16:21
Merci à toi ZackyBambou, c'est sympa ;)
DarK Sidious
ZackyBambou
Messages postés11Date d'inscriptionlundi 20 janvier 2003StatutMembreDernière intervention15 mars 2005 11 nov. 2004 à 15:49
Good DARKSIDIOUS
C'est bien la première que je félicite quelqu'un pour la qualité de sa source.
Des commentaires compréhensibles y en a en masse et quasi trop :), mais bon on est des gens de différent niveau !
Anyway... si y en avait plus comme toi qui porterait une attention particulière à leur source... on irait encore plus loin et surtout plus vite.
Thx
kimmelf2
Messages postés267Date d'inscriptionlundi 22 septembre 2003StatutMembreDernière intervention27 novembre 2005 22 déc. 2003 à 01:23
pour info, si vous voulez vous amuser ....
Ld et Lf sont des ListDir et ListFile
La fonction efface completement le contenu d'un repertoire cite
Private Sub VideDir(d As String)
Dim i As Integer
With frmMain
.Ld.Path = d
.Lf.Path = d
For i = 0 To .Lf.ListCount - 1
Kill .Lf.Path & "" & .Lf.List(i)
Next
deldir: ' supprime le premier sous-dossier
If .Ld.ListCount <> 0 Then
VideDir .Ld.List(0)
Else
Exit Sub
End If
.Ld.Path = d
vbNo Then Exit Sub
RmDir .Ld.List(0)
.Ld.Refresh
GoTo deldir
End With
End Sub
kimmelf2
Messages postés267Date d'inscriptionlundi 22 septembre 2003StatutMembreDernière intervention27 novembre 2005 22 déc. 2003 à 01:15
c'est un peu le pb que j'avaiseu avec un de mes pgms.
une recurcivite genre factoriel, c'est pas dur, ca marche toujours pareil
alors qu'une gestion de fichiers/dossiers, l'organisation est completement libre, a la convenance de l'utilisateur, donc il faut tout prevoire ...
je vais qd meme aller voire ton pgm, je veux voire ta recurcivite ;-)
j'aime me torturer les meninges !!!
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 18 déc. 2003 à 18:19
kimmelf2 >> J'avoue avoir eu du mal à trouver cette fonction récursive pour obtenir les fichiers des sous-dossiers !
DarK Sidious
kimmelf2
Messages postés267Date d'inscriptionlundi 22 septembre 2003StatutMembreDernière intervention27 novembre 2005 12 déc. 2003 à 00:19
recursivite, qd tu nous tiens ....
;-Þ
;-)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 10 déc. 2003 à 07:32
Mise à jour de la source : gestion de la copie complète d'un dossier dorénavant avec tout ses sous-dossiers.
DarK Sidious
kimmelf2
Messages postés267Date d'inscriptionlundi 22 septembre 2003StatutMembreDernière intervention27 novembre 2005 24 nov. 2003 à 00:59
le genre de truc qui m'interresse ca !!!
j'avoue que je suis pas trop du genre a chercher des API differentes de celles que j'utilise d'habitude...
et d'hab, pour une copie, j'utilise (c'est une exception ...) un prog a moi qui copie les fichiers ... octets par octets !!! mais c'est une question de securite car ca me permet dans le meme temps de -1- calculer un hash du fichier -2- recuperer des sequences d'octets (1 et 2 me servent pour identifier le fichier dans une BDD).
en +, ca tourne en parallele avec un prog "cracke" : le prog de base se contente de cacher des dossiers avec une protection par pass, j'ai detourne quelques fonctions pour recuperer (entre autre) la liste des dossiers caches et je la reutilise pour que, si un fichier d'un dossier cache est copie vers un dossier non cache, celui devient cache...
y'a evidemment encore des bugs a gerer (si un fichier cache est copie vers c:windows, c:windows devient invisible et windows ne peux evidemment plus fonctionner....)
sinon je trouve l'idee interressante
en fait, je suis tres interresse par ce que j'appelle les "api paralleles" : les api qui fonctionnent comme les api habituelles mais en offrant beaucoup plus d'infos
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 23 nov. 2003 à 18:13
Vous pouvez mettre la note que vous voulez, c'est juste une source pour montrer à ce qui ne savent pas faire, comment afficher une progression de copie !
Merci pour ton 9 pixelone ;-)
J'essaie de mettre le code source directement, mais c'est pas pour autant que tu ne dois pas copier le zip...
Rrominet : il utilise uniquement 4 API, mais c'est vrai qu'elles sont utiles !
DarK Sidious
Rrominet
Messages postés133Date d'inscriptionlundi 26 janvier 2009StatutMembreDernière intervention24 novembre 20141 23 nov. 2003 à 13:10
hmmm :-)
Tu n'étais pas obligé de monter si tu penses que le prog ne vaut pas cette note.
Moi je te donnais juste mon point de vue sur le boulot fait ;)
pixelone
Messages postés10Date d'inscriptionsamedi 7 juillet 2001StatutMembreDernière intervention 5 février 2004 23 nov. 2003 à 12:56
Alle ! je monte les encheres ...
voici voilà ! 9/10
Rrominet
Messages postés133Date d'inscriptionlundi 26 janvier 2009StatutMembreDernière intervention24 novembre 20141 23 nov. 2003 à 10:39
pixelone : c long certes, mais pour n'importe quoi, si tu veux pouvoir gérer 1. un programme graphiquement correct, 2. un programme sans bugs (gestion de fichiers existant, lecture seule, en cours d'utilisation, supprimé, etc...), il faut bien ça !
Surtout qu'il m'a l'air de fonctionner pas trop mal et qu'il utilise pas mal d'API qui peuvent être utiles !!
moi je mettrais pas 5/10 ;)
pixelone
Messages postés10Date d'inscriptionsamedi 7 juillet 2001StatutMembreDernière intervention 5 février 2004 23 nov. 2003 à 08:55
ben didonc ! J'ai pas encore testé mais je te donne 5/10 pour avoir pris le temps de mettre ta source... Pffff c'est bien trop long pour moi pour une simple copie de fichiers... lol .... Merci à toi !
17 janv. 2012 à 19:01
Je suis en retard, mais toujours en vb5-6 ...
Quelques commandes qui me manquait pour un projet perso.
me reste plus qu'a voir comment je vais utiliser en plus court certaines fonctions !
Merci !
13 nov. 2008 à 23:34
Option Explicit
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 Const FOF_MULTIDESTFILES = &H1
Private Const FOF_CONFIRMMOUSE = &H2
Private Const FOF_SILENT = &H4
Private Const FOF_RENAMEONCOLLISION = &H8
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_WANTMAPPINGHANDLE = &H20
Private Const FOF_CREATEPROGRESSDLG = &H0
Private Const FOF_ALLOWUNDO = &H40
Private Const FOF_FILESONLY = &H80
Private Const FOF_SIMPLEPROGRESS = &H100
Private Const FOF_NOCONFIRMMKDIR = &H200
Private Const FO_MOVE = 1
Private Const FO_COPY = 2
Private Const FO_DELETE = 3
Private Const FO_RENAME = 4
Private Declare Function SHFileOperation Lib "shell32.dll" (lpFileOp As SHFILEOPSTRUCT) As Long
Public Function Copie(ByVal strSource As String, ByVal strDest As String) As Boolean
'
Dim varFOS As SHFILEOPSTRUCT
With varFOS
.wFunc = FO_COPY
.pFrom = strSource
.pTo = strDest
End With
Call SHFileOperation(varFOS)
Copie (varFOS.fAnyOperationsAborted 0)
'
End Function
Private Sub Command1_Click()
Copie "C:\test", "E:\test"
End Sub
25 févr. 2007 à 23:53
Bien bien...cependant y'a t'il un moyen de recuperer les chemins (fic ou rep) via le copier/couper/coller ou ctrl + C,V,X de l'exploreur et d'ainsi changer le gestionnaire de windows : tous comme super-copier (en Delphi)
11 nov. 2004 à 16:21
DarK Sidious
11 nov. 2004 à 15:49
C'est bien la première que je félicite quelqu'un pour la qualité de sa source.
Des commentaires compréhensibles y en a en masse et quasi trop :), mais bon on est des gens de différent niveau !
Anyway... si y en avait plus comme toi qui porterait une attention particulière à leur source... on irait encore plus loin et surtout plus vite.
Thx
22 déc. 2003 à 01:23
Ld et Lf sont des ListDir et ListFile
La fonction efface completement le contenu d'un repertoire cite
Private Sub VideDir(d As String)
Dim i As Integer
With frmMain
.Ld.Path = d
.Lf.Path = d
For i = 0 To .Lf.ListCount - 1
Kill .Lf.Path & "" & .Lf.List(i)
Next
deldir: ' supprime le premier sous-dossier
If .Ld.ListCount <> 0 Then
VideDir .Ld.List(0)
Else
Exit Sub
End If
.Ld.Path = d
vbNo Then Exit Sub
RmDir .Ld.List(0)
.Ld.Refresh
GoTo deldir
End With
End Sub
22 déc. 2003 à 01:15
une recurcivite genre factoriel, c'est pas dur, ca marche toujours pareil
alors qu'une gestion de fichiers/dossiers, l'organisation est completement libre, a la convenance de l'utilisateur, donc il faut tout prevoire ...
je vais qd meme aller voire ton pgm, je veux voire ta recurcivite ;-)
j'aime me torturer les meninges !!!
18 déc. 2003 à 18:19
DarK Sidious
12 déc. 2003 à 00:19
;-Þ
;-)
10 déc. 2003 à 07:32
DarK Sidious
24 nov. 2003 à 00:59
j'avoue que je suis pas trop du genre a chercher des API differentes de celles que j'utilise d'habitude...
et d'hab, pour une copie, j'utilise (c'est une exception ...) un prog a moi qui copie les fichiers ... octets par octets !!! mais c'est une question de securite car ca me permet dans le meme temps de -1- calculer un hash du fichier -2- recuperer des sequences d'octets (1 et 2 me servent pour identifier le fichier dans une BDD).
en +, ca tourne en parallele avec un prog "cracke" : le prog de base se contente de cacher des dossiers avec une protection par pass, j'ai detourne quelques fonctions pour recuperer (entre autre) la liste des dossiers caches et je la reutilise pour que, si un fichier d'un dossier cache est copie vers un dossier non cache, celui devient cache...
y'a evidemment encore des bugs a gerer (si un fichier cache est copie vers c:windows, c:windows devient invisible et windows ne peux evidemment plus fonctionner....)
sinon je trouve l'idee interressante
en fait, je suis tres interresse par ce que j'appelle les "api paralleles" : les api qui fonctionnent comme les api habituelles mais en offrant beaucoup plus d'infos
23 nov. 2003 à 18:13
Merci pour ton 9 pixelone ;-)
J'essaie de mettre le code source directement, mais c'est pas pour autant que tu ne dois pas copier le zip...
Rrominet : il utilise uniquement 4 API, mais c'est vrai qu'elles sont utiles !
DarK Sidious
23 nov. 2003 à 13:10
Tu n'étais pas obligé de monter si tu penses que le prog ne vaut pas cette note.
Moi je te donnais juste mon point de vue sur le boulot fait ;)
23 nov. 2003 à 12:56
voici voilà ! 9/10
23 nov. 2003 à 10:39
Surtout qu'il m'a l'air de fonctionner pas trop mal et qu'il utilise pas mal d'API qui peuvent être utiles !!
moi je mettrais pas 5/10 ;)
23 nov. 2003 à 08:55