Detect New File in a Directory
Mostrar comentarios más antiguos
Hi All,
Last time when I google this question, I actually found a function that does what I need, but I couldn't find it this time.
Basically what I need is to monitor a directory for any new files. If there are new files, I will read the files in and continue to monitor for new files.
Any help will be greatly appreciated!
Thank you,
Lynniz
2 comentarios
Walter Roberson
el 13 de Oct. de 2011
The mechanisms for doing this are operating-system specific. Please indicate which OS you are using.
lynniz
el 14 de Oct. de 2011
Respuesta aceptada
Más respuestas (2)
Dimitrios Patikas
el 27 de Ag. de 2022
Editada: Dimitrios Patikas
el 27 de Ag. de 2022
To avoid looping over and over again, you may use a timer function and keep it working on the background unless younstom the timer. An example to get always the newest file:
t = timer;
t.TimerFcn = @timerFunc;
t.Period = 0.6; % how often you want to check
t.ExecutionMode = 'fixedRate';
t.start % use t.stop to stop the timer
function timerFunc(~,~)
persistent CurrentNewest
Path = 'A/path/you/want/to/keep/track';
CurrentNewest = 'NewestFilename.new'
ListFiles = dir(Path);
ListFiles = ListFiles(~[ListFiles.isdir]);
[~, idx] = sort([ListFiles.datenum]);
newest = ListFiles(idx(end));
if ~strcmp(newest.name, CurrentNewest)
disp(['The newest file is now: ', newest.name])
CurrentNewest = newest.name;
end
end
Walter Roberson
el 27 de Ag. de 2022
0 votos
Categorías
Más información sobre File Operations en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!