Is there any code that can detect a file with certain size and replace it with another one?

1 view (last 30 days)
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.
  2 Comments
Stephen23
Stephen23 on 7 Apr 2019
Edited: Stephen23 on 7 Apr 2019
Use dir to get the file attributes, compare the file sizes against your limit, then replace those ones using copyfile or any file exporting function of your choice. Most/all of this could be vectorized.
Ismail Qeshta
Ismail Qeshta on 7 Apr 2019
Thank you Stephen for your comment.
Is it too much to ask if it is possible to show that to me in a code?

Sign in to comment.

Answers (1)

Walter Roberson
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
Ismail Qeshta on 7 Apr 2019
Edited: Ismail Qeshta on 7 Apr 2019
Walter, do you mean by "adjust to the appropriate directory" that I need to place the folder name or the location of folder?
Also, I do not see in the code the new file to be printed. Is it the flag_bad_file.txt?
Walter Roberson
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';

Sign in to comment.

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!