Bonjour,

depuis quelques temps je galère pour récupérer des fichiers d'un serveur par ftp.

Je souhaite récupérer les fichiers contenu dans un dossier (avec des filtres bien sûr) pour les mettre dans une ListView avec un style explorateur Windows (Nom | Modifié le | Type | Taille).

J'ai essayé les fonctions ftp.dir(), ftp.nlst(), etc... mais chacune me pose soucis à un certains stade...

Ci-joint mon code, merci par avance pour votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
def FTP_GET_FilesIntoFolder(self, event):
        try:
            index = self.Cell_listbox.curselection()[0]
            Cell_folder = self.Cell_listbox.get(index)
 
            for i in self.tree.get_children():
                self.tree.delete(i)
 
            FTP_PARAMETERS              = CFG_FILE.get('NETWORK_PARAMETERS', SELECTED_LINE)
            SERVER_NAME, PORT, FTP_PATH = FTP_PARAMETERS.split(";")
            ftp                         = ftplib.FTP()
            ftp.connect(SERVER_NAME, int(PORT))
            ftp.login(FTP_USER, FTP_PASSWORD)
 
            QUELLE METHODE?
 
            #MyList                      = ftp.nlst(FTP_PATH+Cell_folder)
            #MyList                      = ftp.dir(FTP_PATH+Cell_folder)
 
            iFile                       = 0
            FilteredFiles               = []
 
            for file in MyList:
                if file.split('.')[-1]=='txt':
                    continue
                elif file.split('.')[-1]=='io':
                    continue
                else:
                    FilteredFiles.append(file)
 
                    self.tree.insert('', 'end', text=file, values=('date', 'time'))
 
                    iFile+=1
                print(file)
            #if iFile==1:
                #print('One file found')            
            #elif iFile>1:
                #print(iFile, 'files found')
            #else:
                #print('No file found')
 
            return True
        except Exception:
            return False