Skip to main content
jakec42735283
Known Participant
November 11, 2016
Answered

Use getFiles() in an array

  • November 11, 2016
  • 1 reply
  • 1404 views

Hi all,

I'm trying to write a script which searches a folder for packaged files and then searches the links of those files.

I want to store the links and their files separate arrays.

When I put the packaged files in an array I cant seem to use the getFiles() function.

var links = [],
packaged = [],
files = [],
myFolder = Folder( "A:\jake/" ),
myDocs = [],
myFiles = myFolder.getFiles(),  //store the target files in a variable
i;

for ( i = 0; i < myFiles.length; i++ ) {
   
     if (myFiles instanceof Folder ) {
        
    var links = myFiles.getFiles( "Links" )
    packaged.push( links );
      
    }
   
    }

this is a snippet. The packaged array contains all the links folders but when I try and loop through them

for ( i = 0; i < packaged.length; i++ ) {

   

    var y = packaged.getFiles()

    links.push( y );

   

    }

This doesn't work.

Any ideas?

This topic has been closed for replies.
Correct answer Jump_Over

Hi,

"Links" is not an extension (to filter) but a name of folder (a part of path), so:

var links = Folder(myFiles + "/Links/").getFiles();

jarek

1 reply

Jump_Over
Jump_OverCorrect answer
Legend
November 11, 2016

Hi,

"Links" is not an extension (to filter) but a name of folder (a part of path), so:

var links = Folder(myFiles + "/Links/").getFiles();

jarek

jakec42735283
Known Participant
November 11, 2016

Thanks

I'm using this:

var links = [],
packaged = [],
files = [],
myFolder = Folder( "A:\jake/" ),
myDocs = [],
myFiles = myFolder.getFiles(),  //store the target files in a variable
i;

for ( i = 0; i < myFiles.length; i++ ) {
   
     if ( myFiles instanceof Folder ) {
        
    packaged.push( Folder(myFiles + "/Links/").getFiles() );
    }
   
    }
for ( i = 0; i < packaged.length; i++ ) {
  
    $.writeln( packaged );
   
    }

But it doesn't seem to pick up all the files (only the first three folders get checked)

Wosven
Participating Frequently
November 11, 2016

Hello,

Perhaps it' s a problem with file or folder's names.

Your script works fine, but I get empty packaged array when there's no "Links" folder, so iI added : " && Folder(myFiles + "/Links/").exists"

var links = [],

    packaged = [],

    files = [],

    myFolder = Folder( "A:\jake/" ),

    myDocs = [],

    myFiles = myFolder.getFiles();  //store the target files in a variable

for (var i = 0; i < myFiles.length; i++ ) {

    if ( myFiles instanceof Folder && Folder(myFiles + "/Links/").exists) {

        packaged.push( Folder(myFiles + "/Links/").getFiles() );

    }

}

for (var i = 0; i < packaged.length; i++ ) {

    //alert( packaged );

    $.writeln( packaged );

}