Highlighted

ExtendScript: how to find user's home directory

Contributor ,
Aug 24, 2020

Copy link to clipboard

Copied

I am new to Adobe ExtendScript, I would like to know how I can replace the tilde (~) with the absolute path of user's home directory?

 

In my script, I need to find the absolute path of the script itself. To do this, I use: var scriptPath = File($.fileName).path

But this gives me a tilde for the first part which is not recognized by the FrameMaker as user's home directory; therefore, I cannot use it to pinpoint where my files are located.

This is how I would find the path:

var scriptPath = Folder(File($.fileName).path).fsName;
TOPICS
Scripting

Views

58

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

ExtendScript: how to find user's home directory

Contributor ,
Aug 24, 2020

Copy link to clipboard

Copied

I am new to Adobe ExtendScript, I would like to know how I can replace the tilde (~) with the absolute path of user's home directory?

 

In my script, I need to find the absolute path of the script itself. To do this, I use: var scriptPath = File($.fileName).path

But this gives me a tilde for the first part which is not recognized by the FrameMaker as user's home directory; therefore, I cannot use it to pinpoint where my files are located.

This is how I would find the path:

var scriptPath = Folder(File($.fileName).path).fsName;
TOPICS
Scripting

Views

59

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Aug 24, 2020 0
Adobe Community Professional ,
Aug 24, 2020

Copy link to clipboard

Copied

In your script, you can use

app.UserSettingsDir

to give you the 15 folder (for FrameMaker 2019), etc. Does this help?

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 24, 2020 1
Contributor ,
Aug 25, 2020

Copy link to clipboard

Copied

Hi Rick,

Thanks. Yes that helped. I was able to extract the user's home directory out of the home directory of FrameMaker folder 16 (in my case).

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 25, 2020 0
Enthusiast ,
Aug 25, 2020

Copy link to clipboard

Copied

The quick way to get the full path from an ExtendScript file object (in a way that FrameMaker can digest) is as follows:

var scriptPath = File($.fileName).fsName;

fsName provides the platform-specific full path name for the referenced file. 

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 25, 2020 1
Contributor ,
Aug 25, 2020

Copy link to clipboard

Copied

Awseome. Then I would only need to remove the filename itself to get the path.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 25, 2020 0
Enthusiast ,
Aug 25, 2020

Copy link to clipboard

Copied

This is how I would find the path:

var scriptPath = Folder(File($.fileName).path).fsName;

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 25, 2020 1
Contributor ,
Aug 25, 2020

Copy link to clipboard

Copied

Indeed, this is the shortest and most elegant way of doing it. Thank you!

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 25, 2020 0