Bonjour,
Je souhaiterais stocker dans une liste la liste de mes dossiers et fichiers, le tout dans une arborescence relative.
Par exemple, actuellement j'ai :
Ça me retourne :
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 public List<string> DirSearch(string sDir) { foreach (string d in Directory.GetDirectories(sDir)) { lstFilesFound.Add(d); foreach (string f in Directory.GetFiles(d, "*.*")) { lstFilesFound.Add(f); } DirSearch(d); } return lstFilesFound; }
Si mon sDir est : "C:\Truc\Toto"
C:\Truc\Toto\Test.jpg
C:\Truc\Toto\truc\Test.jpg
C:\Truc\Toto\bidule\machin
C:\Truc\Toto\bidule\machin\2.txt
C:\Truc\Toto\bidule\machin\3.txt
Le truc c'est que je voudrais :
Toto\Test.jpg
Toto\truc\Test.jpg
Toto\bidule\machin
Toto\bidule\machin\2.txt
Toto\bidule\machin\3.txt
J'ai besoin de ça car je voudrais uploader récursivement le dossier sur un serveur FTP (http://ftplib.codeplex.com/) mais pour le coup il crée des répertoire contenant C:\Truc\Toto\...
Voici la méthode pour l'upload si jamais :
Et en python j'utilise cette méthode (que j'essaye de "convertir" en C#):
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 public void UploadFile(string p) { List<string> lst = DirSearch(p); foreach(string l in lst) { Console.WriteLine(l); } Directory.SetCurrentDirectory(p); foreach (string file in lst) { string fullPath = Path.GetDirectoryName(file); if (File.Exists(file)) { ftp.PutFile(file, Path.GetFileName(file)); } else { string lastFolderName = Path.GetFileName(file); ftp.CreateDirectory(lastFolderName); ftp.SetCurrentDirectory(lastFolderName); } } }
Merci d'avance.
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 def upload(self, path): files = os.listdir(path) os.chdir(path) for f in files: if os.path.isfile(path + r'\{}'.format(f)): fh = open(f, 'rb') self.current_file = f self.ftp.storbinary('STOR %s' % f, fh, 8192, callback=self.avancement) fh.close() elif os.path.isdir(path + r'\{}'.format(f)): self.ftp.mkd(f) self.ftp.cwd(f) self.upload(path + r'\{}'.format(f)) self.ftp.cwd('..') os.chdir('..')
Partager