6

I am using an app that uses only JavaScript as its scripting language. I have a .ini file and I need to see if it exists. Is this possible?

Also, if it doesn't exist, how can I halt the execution?

4
  • what app are you using? it depends on what they provide for you. Commented Sep 7, 2011 at 17:41
  • As long as Javascript is not running in the server, then it might be possible to do that. But I need to know the OS that you are targeting.? Commented Sep 7, 2011 at 17:42
  • Sorry it's Win7. Also the app I use doesn't give any extra functionality other than controlling the app, which are stuff like adding effects, text on an image, resize image, delete layers, etc. But no generic file IO or libs. Commented Sep 7, 2011 at 17:45
  • it would be helpful to know what it is. Commented Sep 7, 2011 at 18:12

3 Answers 3

3

Ok doing something like this works:

var file = new File(datafile);
var result = file.open ('r');

if result is true, then the file exists, otherwise false means the file does not exist.

Sign up to request clarification or add additional context in comments.

2 Comments

Can you provide some documentation for this File object? What environment is it used in?
SpiderMonkey (https://developer.mozilla.org/en/SpiderMonkey/File_object) and Adobe ExtendScript.
1

"Yes", assuming ActiveX can be used.

See FileSystemObject aka "FSO" (the FileExists method in particular). FSO is part of Windows Scripting.

It is also possible to use the MSXML load method to access a "file://" and catch the appropriate error. (I don't know if a vanilla XmlHttpRequest request of "file://" can be used here, and/or in what contexts... it might differ between the XHR from MSXML and the one baked into IE7/8 as well.)

Happy coding.


If the JavaScript runs from an HTA/HTML Aplication or Windows Sidgebar Gadget, etc, then it's in "Security Level 0" or "Demigod Mode".

On the other hand, an HTA runs as a fully trusted application and therefore has more privileges than a normal HTML file...

3 Comments

Thanks I tried this var fso = new ActiveXObject("Scripting.FileSystemObject"); but it says activexobject doesn't have a constructor.
@Joan Venge Perhaps Photoshop does not support ActiveX, or perhaps the syntax is different.
I don't think it supports ActiveX, I will look it up. But is this not possible without using ActiveX?
1

Try this:

var myfile = new File(myfile_path);

if (!myfile.exists) {
    alert(myfile + " could not be found!");
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.