Directory Watcher

Hi,
I am working on auto generation of reports and i am stuck right now. My aim is to check a network disk (let's say Z:\) once every day and if someone has put new folders (data) in that network drive then my script will analyse that new data.
The concept that i am unable to grasp right now is how to handle following 2 cases:
Z:\MainFolder\myDesiredFolder
and 2nd case
Z:\MinaFolder\SubFolder\Subfolder\Subfolder\myDesiredFolder
You are welcome with any kind of suggestions, tips or ideas.
Many thanks in advance.
\\Arsalan

 Respuesta aceptada

Oleg Komarov
Oleg Komarov el 13 de Mzo. de 2011

1 voto

You can use recursive directory listing in the following way:
dirs = folderSizeTree('D:\');;
Then you can store results across days and use setdiff to find which new folder were added.
Oleg

5 comentarios

Muhammad Arsalan
Muhammad Arsalan el 14 de Mzo. de 2011
Thanks a lot for introducing me to recursive directory listing. Its works very well.
But in the next step i am having problems with setdiff.
I am doing following:
dirs1 = folderSizeTree('C:\Documents and Settings\');
here i get dirs1 struct1x1
then i add some folders at the location and again
folders1 = dirs1.name; % got 1x127 cell
dirs2 = folderSizeTree('C:\Documents and Settings\');
folders1 = dirs2.name; % got 9x129 cell
newfs = setdiff(folders1,folders2);
% got ===> Empty cell array: 0-by-1
% I have also tried to compare it after converting into char array
folders1 = char(folders1); % got long list of all folder paths and
folders2 = char(folders2); % compared 2 using different approaches
% haven't got what i am looking for. That is the new folder path.
Any hint??
Thanks in advance.
\\Arsalan
Oleg Komarov
Oleg Komarov el 14 de Mzo. de 2011
I guess folders1 = dirs2.name; should be folders2 = dirs2.name;
But the question is how do you get a 9 by 129?
I awalys get a vector cell array of strings.
Muhammad Arsalan
Muhammad Arsalan el 18 de Mzo. de 2011
Ya you are right. Sorry for my typing mistakes.
I need you help here.
I have
folders1 = dirs1.name; % got 1x127 cell
folders2 = dirs2.name; % got 1x129 cell
newfs = setdiff(folders1,folders2);
% got ===> Empty cell array: 0-by-1
So how can i look for new folders?
Thanks a lot.
Walter Roberson
Walter Roberson el 18 de Mzo. de 2011
Reverse the order of your arguments to setdiff:
newfs = setdiff(folders2,folders1);
Muhammad Arsalan
Muhammad Arsalan el 18 de Mzo. de 2011
Thanks Walter, now its working fine.

Iniciar sesión para comentar.

Más respuestas (0)

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!

Translated by