Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

Renaming a File in ACC using Javascript

4uSwan
Level 1
Level 1

The file name has a prefix of tmp.  I need to remove the prefix from the name.  I was trying to use the split and join method to break up the name and rejoin it again with out the tmp.  But I'm not sure these commands work in Adobe.  Below is the code I have written so far.  What am I doing wrong?

 

logInfo(vars.filename);

 

vars.nameOnly = vars.filename.rmdir();

vars.f1 = vars.nameOnly.split("_");

vars.f2 = f1.shift();

vars.finalName = f2.join("_");

 

logInfo(vars.finalName);

 

vars.cmd = path + vars.finalName;

 

execCommand(cmd);

 

 

1 Accepted Solution
Krishnanunni
Correct answer by
Level 3
Level 3

Hi @4uSwan ,

The split function actually returns an array of elements that consist of all the substrings that were next to a separator.
For eg, if you run the following code, 
var testString = "hello world for test" ;
var array = testString.split(" ");

 

The resulting array variable would have content as ["Hello","world","for","test"]

From the array, you can choose the desired data using the array[index] format.

 

In your case, var f1 = vars.nameOnly.split("_");
you get the f1 = ["tmp","rest_of_filename"]

to get the filename excluding the temp, you can use f1[1] to get the "rest of filename";

You can use the following code to rename a file in SFTP
var filepath = "/sftp/<path to file folder>/";
var oldFilename = "tmp_test.csv";
var newFilename = oldFilename.split("_")[1];
logInfo(newFilename);
var command = "mv -i "+filepath+oldFilename+" "+filepath+newFilename;
var result = execCommand(command);

Hope it helps!

View solution in original post

3 Replies
kapilKochar
Community Advisor
Community Advisor

Hi ,

Can you please add below function and try if it's works. I am using this function to rename my csv file using JS script in workflow and it's working fine for me. 

 

function test(oldName,newName)

{

try

{

var temp= new File(oldName);

temp.renameTo(newName);

}

catch(e)

logInfo("error " + e)

}

}

Krishnanunni
Correct answer by
Level 3
Level 3

Hi @4uSwan ,

The split function actually returns an array of elements that consist of all the substrings that were next to a separator.
For eg, if you run the following code, 
var testString = "hello world for test" ;
var array = testString.split(" ");

 

The resulting array variable would have content as ["Hello","world","for","test"]

From the array, you can choose the desired data using the array[index] format.

 

In your case, var f1 = vars.nameOnly.split("_");
you get the f1 = ["tmp","rest_of_filename"]

to get the filename excluding the temp, you can use f1[1] to get the "rest of filename";

You can use the following code to rename a file in SFTP
var filepath = "/sftp/<path to file folder>/";
var oldFilename = "tmp_test.csv";
var newFilename = oldFilename.split("_")[1];
logInfo(newFilename);
var command = "mv -i "+filepath+oldFilename+" "+filepath+newFilename;
var result = execCommand(command);

Hope it helps!

View solution in original post