Azzera filtri
Azzera filtri

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

1 visualizzazione (ultimi 30 giorni)
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 Commenti
Stephen23
Stephen23 il 7 Apr 2019
Modificato: Stephen23 il 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 il 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?

Accedi per commentare.

Risposte (1)

Walter Roberson
Walter Roberson il 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 Commenti
Ismail Qeshta
Ismail Qeshta il 7 Apr 2019
Modificato: Ismail Qeshta il 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 il 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';

Accedi per commentare.

Categorie

Scopri di più su File Operations in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by