Gestions fichiers

Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 - 29 oct. 2004 à 15:11
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 - 2 nov. 2004 à 11:32
Voila j'ai plusieurs questions:

comment lister des dossier présent dans un répertoire donné, et transférer cette liste dans une combobox

ma deuxième question:
comment faire l'équivalent d'un Xcopie avec vb?(copie de dossier avec leur contenus et leurs droits...

7 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
29 oct. 2004 à 15:16
Si tu es en VB6 (et pas en VBA), place un contrôle FileListBox sur ta feuille.

Private Sub Form_Load()
' File1 contient tous les fichies présents dans C:\mon_dossier
File1.Path = "C:\mon_dossier"
End Sub


Transfert des noms de fichiers vers une combobox

For i=0 to File1.ListCount-1
combo1.Additem File1.List(i)
Next i


Manu
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
29 oct. 2004 à 15:19
merci. et sans passer par une filelistbox???

en fait je dois juste utiliser les nom...

et pour faire un xcopy

je suis bien en vb6, c quoi vba?
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
29 oct. 2004 à 18:00
VBA = Visual Basic Allégé (définition inventée)

C'est le langage des Macros dans Word, Excel et Access.
Mais visiblement, tu ne t'en sers pas.

>en fait je dois juste utiliser les nom

euh ..je ne comprend pas ta remarque. Dans la FileListBox, il y a déjà les noms de tous les fichiers présents dans ton répertoire.

Manu
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
29 oct. 2004 à 19:24
Option Explicit

Const MAX_PATH = 260
Const FILE_SHARE_READ = &O1
Const FILE_SHARE_WRITE = &O2
Const GENERIC_WRITE = &H40000000
Const OPEN_EXISTING = 3
Const INVALID_HANDLE_VALUE = -1
Const CB_SHOWDROPDOWN = &H14F

Private Type FILETIME
    dwLowDate    As Long
    dwHighDate   As Long
End Type

Private Type WIN32_FIND_DATA
    dwFileAttributes    As Long
    ftCreationTime      As FILETIME
    ftLastAccessTime    As FILETIME
    ftLastWriteTime     As FILETIME
    nFileSizeHigh       As Long
    nFileSizeLow        As Long
    dwReserved0         As Long
    dwReserved1         As Long
    cFileName           As String * MAX_PATH
    cAlternate          As String * 14
End Type

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function FindClose Lib "kernel32" (ByVal hfile As Long) As Long

Private Sub CmdLire_Click()
    Dim FindData As WIN32_FIND_DATA
    Dim nom      As String
    Dim hfind    As Long
    Dim Rep      As Long
    
    nom = "C:\Windows\*.txt"
    hfind = FindFirstFile(nom, FindData)
    If hfind = INVALID_HANDLE_VALUE Then Exit Sub
    Do
       If (FindData.dwFileAttributes And 31) < 8 Then
          Combo1.AddItem FindData.cFileName
          End If
       Rep = FindNextFile(hfind, FindData)
       Loop Until Rep = 0
    FindClose hfind
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
2 nov. 2004 à 07:34
cool ton code, mais voila, je dois pas trouver des fichier, mais des dossier...

donc ca marche plus tant...

après, pour faire des xcopy(copie des répertoire avec les sous-répertoires, avec les meme droits(et non hérités par le dossier ou on les copie...))

Merci
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 nov. 2004 à 11:23
pour les répertoires il faut tester l'attribut répertoire:

vbNormal = 0
vbReadOnly = 1
vbHidden = 2
vbSystem = 4
vbDirectory = 16

    Do
       attr = FindData.dwFileAttributes
       If (attr And vbDirectory) = vbDirectory Then
          If Asc(FindData.cFileName) <> 46 Then
             Combo1.AddItem FindData.cFileName
             End If
          End If
       Rep = FindNextFile(hfind, FindData)
       Loop Until Rep = 0
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
2 nov. 2004 à 11:32
je comprend pas grand chose à ton code, mais vais tester tout ca...
0
Rejoignez-nous