Bonjour,
Je travail en ce moment sur une fonction permettant de faire une recherche de répèrtoire sur le disque.
Je met en paramètre le nom de dossier à trouver et le scan est lancé.
Mon soucis est que j'arrive à afficher les chemin de dossier trouvé mais pas à les stockés dans une variable.
Je m'explique voici mon code:
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 %=========================================================================% %Début de la fonction getAllFiles+++++++++++++++++++++++++++++++++++++++++% %=========================================================================% % Fonction parse du disque à tester function fileList = getAllFiles(dirName) searchDir = getappdata(gcbf,'valeur_de_searchDir'); dirData = dir(dirName); %# Get the data for the current directory dirIndex = [dirData.isdir]; %# Find the index for directories folderList = {dirData(dirIndex).name}'; %'# Get a list of the folders if ~isempty(fileList) folderList = cellfun(@(x) fullfile(dirName,x),... %# Prepend path to files folderList,'UniformOutput',false); end subDirs = {dirData(dirIndex).name}; %# Get a list of the subdirectories validIndex = ~ismember(subDirs,{'.','..'}); %# Find index of subdirectories %# that are not '.' or '..' [m,n] = size(subDirs); %# On relève les dimensions de subDirs for index = 1:n monSubDir = regexpi(subDirs(index), searchDir, 'match'); if ~isempty(monSubDir{1,1}) disp(folderList(index)); end index = index + 1; end for iDir = find(validIndex) %# Loop over valid subdirectories nextDir = fullfile(dirName,subDirs{iDir}); %# Get the subdirectory path fileList = [fileList; getAllFiles(nextDir)]; %# Recursively call getAllFiles end %=========================================================================% %Fin de la fonction getAllFiles-------------------------------------------% %=========================================================================%
Et la partie qui me pose problème :
Je voudrais changer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 for index = 1:n monSubDir = regexpi(subDirs(index), searchDir, 'match'); if ~isempty(monSubDir{1,1}) disp(folderList(index)); end index = index + 1; endpar une sauvegarde des éléments dans un tableau qui se met a jour au fur et a mesure que l'on revient dans la boucle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part disp(folderList(index));
Je ne sais pas si c'est trés clair ..
Merci d'avance pour toute aide
Partager