file size in macro

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

file size in macro

Bruno
Hi,

I wrote a macro that list files in a directory if the file size is less than some number.
This does not seem to work if the size is e.g. 10000 but does work for 9999 .. ?

dir = getDirectory("Choose a Directory ");
list = getFileList(dir);
print("Number of files: "+ list.length);
j=0;
for (i=0; i<list.length; i++) {
        path = dir+list[i];
// if(File.length(path) < 10000) { //exclude long files ... does not work
        if(File.length(path) < 9999) { //exclude long files ... does work
                print(File.length(path) + " " + i + " " + list[i]);
                j=j+1;
        }
}
print("Number small files: "+ j);

What is wrong?

Bruno

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: file size in macro

Rasband, Wayne (NIH/NIMH) [E]
On Sep 12, 2014, at 5:53 AM, Bruno Keijzers wrote:

> Hi,
>
> I wrote a macro that list files in a directory if the file size is less than some number.
> This does not seem to work if the size is e.g. 10000 but does work for 9999 .. ?
>
> dir = getDirectory("Choose a Directory ");
> list = getFileList(dir);
> print("Number of files: "+ list.length);
> j=0;
> for (i=0; i<list.length; i++) {
> path = dir+list[i];
> // if(File.length(path) < 10000) { //exclude long files ... does not work
> if(File.length(path) < 9999) { //exclude long files ... does work
> print(File.length(path) + " " + i + " " + list[i]);
> j=j+1;
> }
> }
> print("Number small files: "+ j);
>
> What is wrong?

The File.* macro functions return a string so the string returned by File.length() needs to be converted into a number before it can be used in a boolean expression. This conversion is done automatically when you use File.length() in an assignment statement, for example

    length = File.length(path);
    if (length < 9999)  {

Or use the parseInt() function to convert the string into a number, for example

   if (parseInt(File.length(path)) < 9999)  {

-wayne


> Bruno
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html