Is there any code that can detect a file with certain size and replace it with another one?
Show older comments
Hi,
I am now post-processing my analysis data. I noticed that some files do not have the targeted data, as the analysis stopped prematurely.
Hence, I need to replace these files with a file that contains a fixed value.
The files to be found and replaced have a size that is usually below 10 KB.
Is there any available code that can scan files in a folder and detect such files and replace them?
I hope I could explain my problem clearly, and please feel free to let me know if I should elaborate my question further.
Answers (1)
Walter Roberson
on 7 Apr 2019
projectdir = pwd(); %adjust to the appropriate directory
ext = '.xyz'; %adjust to extension being looked for
too_small_size = 10*1024;
replacement_file = fullfile(projectdir, 'flag_bad_file.txt'); %if it is in the same directory then avoid using same extension
dinfo = dir( fullfile(projectdir, ['*' ext]);
mask = [dinfo.bytes < too_small_size];
files_to_replace = fullfile( projectdir, {dinfo(mask).name} );
for K = 1 : length(file_to_replace)
copyfile(replacement_file, files_to_replace{K});
end
5 Comments
Ismail Qeshta
on 7 Apr 2019
Walter Roberson
on 7 Apr 2019
Add another ) to the end of the dir call.
Note: pwd does not accept input arguments. It only reports back what the current directory is.
cd() does accept input arguments. If you use both input and output on cd() then what gets reported is the previous directory that you were in, which is not what you would want in this situation.
Ismail Qeshta
on 7 Apr 2019
Ismail Qeshta
on 7 Apr 2019
Edited: Ismail Qeshta
on 7 Apr 2019
Walter Roberson
on 7 Apr 2019
projectdir = 'Put/In/The/Full/Path/To/The/Directory/At/This/Point';
replacement_file = 'Put/In/The/Full/Path/To/The/Replacement/File/At/This/Point/Including.extension';
Categories
Find more on File Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!