循环访问一个文件夹及其所有子目录

时间:2012-12-31 04:56:30

标签: loops for-loop import directory

确定。许多麻烦的拍摄时间......以及许多错误“叮当”以后,我仍然遇到同样的问题。由于我的初学者技能,我在实现项目的以下部分时遇到了问题:

我将尽可能详细,所以我希望这次能够指出:

  • 在我的电脑上,我有一个文件夹C:\ data,其中包含许多不同的子文件夹。

  • 子文件夹以MMDDYY方式按日期命名。例如“040312”

  • 在每个子文件夹中都有以棒球队命名的excel文件。每个子文件夹可能包含xls文件的不同组合。

我正在尝试编写实现以下目标的代码:

1。)循环遍历C:\ data文件夹的所有子文件夹,查找具有文件名的xls文件:Angles.xls,Diamondbacks.xls等。

2.如果在每个子文件夹中找到文件,请导入电子表格数据并生成标题为“得分”和“允许”的数据图。

3.)如果找不到任何给定子文件夹的文件,请跳过并继续查找下一个文件。 4.)然后将生成的绘图保存在导入电子表格的同一文件夹中,作为.fig和.bmp文件。

我已经得到了使用各种函数的提示:genpath,dir,但是我一直在摸索的代码无法实现我的目标。

a)脚本不会从所有子文件夹中导入excel文件

b)脚本不会将.fig或.bmp文件保存在关联的子文件夹

以下是我一直在摸索的代码:

%我知道这一切都是错误的错误。请帮助调整我的代码以达到上述目标!

addpath(genpath('c:\data'))
folder = 'c:\data';
subdirs = dir(folder);
subdirs(~[subdirs.isdir]) = [] ; 
numberOfFolders = length(subdirs);
if numberOfFolders <= 0
    uiwait(warndlg('Number of folders = 0!'))
end
wantedfiles = {'Angels' 'Diamondbacks' 'Orioles' 'Royals' 'Yankees' 'Mets' 'Giants'};


for K = 1 : numberOfFolders
  thissubdir = subdirs(K).name;
if strcmp(thissubdir, '.') || strcmp(thissubdir, '..')
      continue; 
end
  subdirpath = [folder '\' thissubdir];

for L = 1 : length(wantedfiles)  

for wantedfiles = {'Angels' 'Diamondbacks' 'Orioles' 'Royals' 'Yankees' 'Mets' 'Giants'};
folder = '';
   fileToRead1 = [wantedfiles{1} '.xls'];
   sheetName='Sheet1';
if exist(fileToRead1, 'file') == 0
  % File does not exist
  % Skip to bottom of loop and continue with the loop
    continue;
end   

%这是导入数据并进行组织   %我手动导入文件时自动生成的所有代码

   [numbers, strings, raw] = xlsread(fileToRead1, sheetName);
if ~isempty(numbers)
    newData1.data =  numbers;
end

if ~isempty(strings) && ~isempty(numbers)
    [strRows, strCols] = size(strings);
    [numRows, numCols] = size(numbers);
    likelyRow = size(raw,1) - numRows;
    % Break the data up into a new structure with one field per column.
    if strCols == numCols && likelyRow > 0 && strRows >= likelyRow
        newData1.colheaders = strings(likelyRow, :);
    end
end

% Create new variables in the base workspace from those fields.
for i = 1:size(newData1.colheaders, 2)
    assignin('base', genvarname(newData1.colheaders{i}), newData1.data(:,i));
end


% Now I execute the plotting of data
subplot (2,1,1), plot(Score,Allow)


title([wantedfiles{1} 'Testing to see if it works']);
subplot (2,1,2), plot(Allow,Score)

title('Well, did it?');

%这里我保存生成的图,但它们没有保存到我想要的地方

saveas(gcf,[wantedfiles{1} ' did it work.fig']);
saveas(gcf,[wantedfiles{1} ' did it work.bmp']);
end
end
end

%在脚本结束时,我仍然无法遍历我想要的文件      rmpath(genpath( 'C:\数据'));

0 个答案:

没有答案