Copy file to a new folder
    17 ビュー (過去 30 日間)
  
       古いコメントを表示
    
Under a folder, I have a lot of .mat. "19800101.mat", "19800102.mat", ......."19800201.mat", "19800202.mat", ......"19801201.mat".... I want to copy "19800101.mat", "19800102.mat", and copy others which also belong to January to a new folder, and display this new folder directory. February to a another new folder, and so on. Thanks.
0 件のコメント
採用された回答
  Walter Roberson
      
      
 2016 年 3 月 8 日
        destdirs = {'January', 'February', 'March', ... 'December'};
ndests = length(destdirs);
for K = 1 : ndests
  if ~exist(destdirs{K}, 'dir'); mkdir(destdirs{K}); end
end
dinfo = dir('*.mat');
filenames = {dinfo.name};
%remove filenames that are not a 4 digit year followed by a 2 digit month followed by a
%2 digit day followed by .mat. Years starting in 0, 1, or 2 are accepted with this check
namebad = cellfun(@isempty, regexp(filenames, '[012]\d\d\d[01]\d\d\d\.mat$') );
filenames(namebad) = [];
nfiles = length(filenames);
for K = 1 : nfiles
   thisfile = filenames{K};
   monthnum = sscanf(thisfile, '%*4d%2d', 1);
   if monthnum > ndests
     fprintf('File has invalid month number, skipping "%s"\n', thisfile);
   else
     destdir = destdirs{monthnum};
     copyfile( thisfile, destdir );
   end
end
4 件のコメント
その他の回答 (2 件)
  John BG
      
 2016 年 3 月 8 日
        
      編集済み: John BG
      
 2016 年 3 月 8 日
  
      Hi Jason
one way to copy files is with command dos
path1='put here full destination path'   % for instance D:\Documents\backup\'
dos('copy file_name.mat path1')
If you find this answer of any help solving your question, please click on the thumbs-up vote link,
thanks in advance
John
2 件のコメント
  Jan
      
      
 2016 年 3 月 8 日
				MAtlab's copyfile is more direct and faster than starting a DOS command. If there is really a reason to call DOS, use:
dos(['copy file_name.mat ', path1])
  Prajwol Tamrakar
 2020 年 5 月 27 日
        This issue of copying file to another directory is possibly due to "ready only access". Use  'f' option to override the read-only status of the destination folder.
copyfile(SourceFile, DestinyFile, 'f')
0 件のコメント
参考
カテゴリ
				Help Center および File Exchange で String Parsing についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!