Renaming a File in ACC using Javascript | Community
Skip to main content
Level 2
July 3, 2021
Solved

Renaming a File in ACC using Javascript

  • July 3, 2021
  • 3 replies
  • 1832 views

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);

 

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Krishnanunni

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!

3 replies

Manoj_Kumar
Community Advisor
Community Advisor
July 3, 2021

Hello @4uswan 

Did you try using fileRename function?

more details are given here:

https://docs.adobe.com/content/help/en/campaign-classic/technicalresources/api/f-fileRename.html

Manoj  | https://themartech.pro
kapilKochar
Level 6
July 5, 2021

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
KrishnanunniAccepted solution
Level 4
July 5, 2021

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!