http://imagej.273.s1.nabble.com/Recusive-operation-on-subfolders-tp3697711p3697714.html
>
> Thank you Michael for your help, and sorry for the late answering,
> I tried several things based on what you told me. But my problem is
> not completely solved.
> I used this code :
>
> {dir = getDirectory("Choose a Directory ");
>
> find(dir);
>
> function find(dir) {
> list = getFileList(dir);
> for (i=0; i<list.length; i++) {
> showProgress(i, list.length);
> if (endsWith(list[i], "/"))
> find(""+dir+list[i]);
> else if (endsWith(list[i], ".tif"))
> {
> for (i=0; i<list.length; i++) {
>
> open(""+dir+list[i]);
> }
> }
> // I simplified your code because imagej gave me the error of an
> undefined variable in the function valid(name) and it could work
> without.
>
>
> My concern is that now I am able to open all the file of sub
> directory, but I don't know how to make image J understood that he
> as to make operation on two image that are in the same subfolder.
> And save the result in that subfolder
> Basically it has to add the image with i=0 to the image i=1 and
> save the new to the folder where those image are. And then do the
> same for image 2 and 3, 4+5 etc to the end of the list.
> I tried without success different things. Do you have any idea ?
>
> Thank you again for your help..
>
> Ludwig
>
>
>
> Ludwig Berland
> 2007-12-20
>
>
>
> En réponse au message
> de : Michael Schmid
> du : 2007-12-18 21:00:56
> À :
[hidden email]
> CC :
> Sujet : Re: Recusive operation on subfolders
>
> Hi Ludwig,
>
> you can take Search.txt in the ImageJ sources macros as an example
> of how to address a directory recursively:
>
> extensions = newArray(".tif", ".tiff"); //or what extensions you
> want to address
>
> function find(dir) {
> list = getFileList(dir);
> for (i=0; i <list.length; i++) {
> showProgress(i, list.length);
> if (endsWith(list[i], "/"))
> find(""+dir+list[i]);
> else if (contents && valid(list[i])) {
> //whatever you want to do with the file list[i]
> }
> }
> }
>
> function valid(name) { //check extension
> for (i=0; i <extensions.length; i++) {
> if (endsWith(name, extensions[i]))
> return true;
> }
> return false;
> }
>
> Hope this helps,
>
> Michael
> ________________________________________________________________
> On Tue, 18 Dec 2007 13:43:57 +0100 Ludwig Berland
> <
[hidden email] > wrote:
>> Hello every one
>>
>> I am sorry if my questions seems to be a bit silly, but I was not
>> able to find
>> any good solution for my problem.
>>
>> What I whant to do is a simple image operation on several files
>> with different
>> names in different subfolders.
>> I am able to do it automatically but on only one folder, and I
>> have to rename
>> each file to fit the name in my macro which is not convenient at all.
>>
>> This is the code I am using now :
>>
>> dir1= getDirectory("Choose Destination Directory");
>> open(dir1+"rouge.tif");
>> open(dir1+"bleu.tif");
>>
>> selectWindow("rouge.tif");
>> run("Multiply...")
>> saveAs("Tiff", dir1+"GFrouge.tif");
>>
>> imageCalculator("Add create 32-bit", "bleu.tif","GFrouge.tif");
>> //run("Image Calculator...", "image1=bleu.tif operation=Add
>> image2=rouge.tif
>> create 32-bit");
>> saveAs("Tiff",dir1+"add.tif");
>>
>> The structure of my directory and file is the following:
>> Folder A containing subfolders B,C,D,… Each sub folder contain
>> only two images
>> named XXX-NDD2.tif and XXX-NDD3.tif ( where XXX is different from one
>> subfolder to the other)
>>
>> What I want to do is the following : Select only the Folder A and
>> allow imageJ
>> going first to subdirectory B, read the name of the files and make
>> the
>> operation multiply XXX-NDD3.tif, save as GFXXX.tif in subfolder B
>> then image
>> calculator of adding GFXXX and XXX-NDD2.tif and save as : add-
>> XXXX.tif still
>> in subfolder B. Then do the same thing recursively for the other
>> subdirectory.
>>
>> Thank you for your help.
>>
>> Ludwig
>>
>
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.503 / Virus Database: 269.17.4/1188 - Release Date:
> 17/12/2007 14:13