Expand my Community achievements bar.

SOLVED

Renaming a File in ACC using Javascript

Avatar

Level 2

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

Avatar

Correct answer by
Level 4

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

Avatar

Level 8

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)

}

}

Avatar

Correct answer by
Level 4

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!