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

1 visualización (últimos 30 días)
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 comentarios
Stephen23
Stephen23 el 7 de Abr. de 2019
Editada: Stephen23 el 7 de Abr. de 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 el 7 de Abr. de 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?

Iniciar sesión para comentar.

Respuestas (1)

Walter Roberson
Walter Roberson el 7 de Abr. de 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 comentarios
Ismail Qeshta
Ismail Qeshta el 7 de Abr. de 2019
Editada: Ismail Qeshta el 7 de Abr. de 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 el 7 de Abr. de 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';

Iniciar sesión para comentar.

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!

Translated by