DÉFILLEMENT COPIE DOSSIER 1.0

pixelone Messages postés 10 Date d'inscription samedi 7 juillet 2001 Statut Membre Dernière intervention 5 février 2004 - 23 nov. 2003 à 08:55
Galactus13 Messages postés 335 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 16 août 2023 - 17 janv. 2012 à 19:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/18132-defillement-copie-dossier-1-0

Galactus13 Messages postés 335 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 16 août 2023 1
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és 91 Date d'inscription mercredi 6 novembre 2002 Statut Membre Dernière intervention 20 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 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
cs_ABF Messages postés 227 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 26 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és 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 nov. 2004 à 16:21
Merci à toi ZackyBambou, c'est sympa ;)

DarK Sidious
ZackyBambou Messages postés 11 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 15 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és 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 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és 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 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és 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
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és 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005
12 déc. 2003 à 00:19
recursivite, qd tu nous tiens ....

;-Þ
;-)
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
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és 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 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és 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
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és 133 Date d'inscription lundi 26 janvier 2009 Statut Membre Dernière intervention 24 novembre 2014 1
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és 10 Date d'inscription samedi 7 juillet 2001 Statut Membre Dernière intervention 5 février 2004
23 nov. 2003 à 12:56
Alle ! je monte les encheres ...
voici voilà ! 9/10
Rrominet Messages postés 133 Date d'inscription lundi 26 janvier 2009 Statut Membre Dernière intervention 24 novembre 2014 1
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és 10 Date d'inscription samedi 7 juillet 2001 Statut Membre Derniè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 !
Rejoignez-nous