Walter, shouldn't there be two loops in the code? One for the files in a given directory and one for subdirectories in the RawData?
Does anyone have a Matlab code that would delete part of filenames in many directories?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Vahe Ghazikhanian
el 17 de En. de 2019
Comentada: Vahe Ghazikhanian
el 19 de En. de 2019
I have a large number of waveform records that have been saved as individual files in many directories.
The directory structure is \RawData\Cell01, \RawData\Cell02, \RawData\Cell03...\RawData\Cell99
The data files in each of these subdirectories are named Cellxx_00000_xxxxx.xxx except the first file which is Cellxx_00000.dat
For example I have a subdirectory \RawData\Cell01 that may contain several thousand files named Cell01_00000_00001.dat, Cell01_00000_00002.dat; Cell01_00000_00003.dat… Cell01_00000_04300.dat.
I would like to:
- remove the characters "_00000" from these files and rename them as: Cell01_00001.dat, Cell01_00002.dat, Cell01_00003.dat ... Cell01_04300.dat, and
- copy the renamed files to subdirectory \RawData\Renamed\Cell01. The file Cell01_00000.dat must not be changed.
Does anyone have a code that could perform this task?
5 comentarios
Respuesta aceptada
Walter Roberson
el 17 de En. de 2019
Editada: Walter Roberson
el 19 de En. de 2019
Given a filename
newfilename = regexprep(filename, '000000_', '');
The rest is just finding files and copyfile()
The below needs R2016b or later
projectdir = 'RawData';
outdir = fullfile(projectdir, 'Renamed');
if ~exist(outdir, 'dir'); mkdir(outdir); end
dinfo = dir( fullfile(projectdir, 'Cell*', '*.dat') );
fullnames = fullfile( {dinfo.folder}, {dinfo.name} );
for K = 1 : length(fullnames)
thisfile = fullnames{K};
[fulldir, basename, ext] = fileparts(thisfile);
[parentdir, basedir] = fileparts(fulldir);
newfilename = [regexprep(basename, '000000_', '', 'once'), ext];
newdir = fullfile(outdir, basedir);
if ~exist(newdir, 'dir'); mkdir(newdir); end
newfilename = fullfile(newdir, newfilename);
copyfile(thisfile, newfilename)
end
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre File Operations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!