Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Check if a file exists in network dir (JS)

Explorer ,
Dec 01, 2009 Dec 01, 2009

I've found an old post that has pointed me at:

if (myFile.exists){

alert("File Exists");

}

else

alert("File doesn't exist");

The problem is that when I use the path  macname/volumes/dir/folder/folder/file.indd (which was created from variables) as myFile the script doesn't find a file that I know exists. All I get is the "File doesn't exist" alert.

Do I need to define myFile as being a string?

I'm still fumbling my way around JS, and converting Applescripts to JS to work cross-platform. Thanks in advance....

TOPICS
Scripting
10.3K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Valorous Hero , Dec 01, 2009 Dec 01, 2009

Do I need to define myFile as being a string?

No, define it like so:

var myFile = new File("/Volumes/VolumeName/FolderName/SubFolderName/FileName.indd");

Translate
Valorous Hero ,
Dec 01, 2009 Dec 01, 2009

Do I need to define myFile as being a string?

No, define it like so:

var myFile = new File("/Volumes/VolumeName/FolderName/SubFolderName/FileName.indd");

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Dec 01, 2009 Dec 01, 2009

Kasyan

My saviour once again!

Couldn't get it to work properly, but then noticed that the BasePath variable I was using had the old Applescript style paths which included the Macname.

Took that out and it works a treat.

Many thanks again, and also to you Thomas - I was actually going to write a subscript to mount/remount missing servers, so you've read my mind.

Cheers both

Andrew

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guide ,
Dec 01, 2009 Dec 01, 2009
LATEST

I've recently moved from the AppleScript side and whilst I can use the do script method for mounting volumes without issue. There was also the alternative of creating aliases of my network drives. In a quick test with our works server and my idisk this worked just fine. Not sure if this is good or bad method? File.execute(); resolves this by mounting it.

var fileRef = new File ('~/Desktop/MacRaid alias');

if (fileRef.exists) {

alert('File does exist…');

if (fileRef.alias) {

alert('File is Alias? = True…');

// Passwords are in Keychain… for NO dialog

fileRef.execute();

}

else {

alert('File is Alias? = False.');

}

}

else {

alert('File does NOT exist?');

}

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Dec 01, 2009 Dec 01, 2009

To get the path to a file i normally use this little script:

// JavaScript Document
var myFile = File.openDialog("Choose a File");
if((myFile != "")&&(myFile != null)){
    alert("Path: " + myFile + "\nType: " + myFile.type);
}

Perhaps this c/p can help you:

function mounter() {
    var myDocument = app.activeDocument;
    // we are saving the preview
    var destination = "/Volumes/myfoldername";
    //var destination = "/Users/tn/Documents/Tryksager/Design/";
    var volume = "afp://sub.dn.com/myfoldername";

    try {
        with (myDocument) {
            if(file_name = get_filename(name)) {
                    if (Folder(destination).exists) {
                    //alert("Folder exists: " + Folder(destination));
                    } else {
                    if (confirm ("Mount volume?", false, "Mount volume")) {
                        mount_volume();
                        // volume mounted, do what you need
                    } else {
                        alert("Could not mount");
                    }
                }
            }
        }
    } catch ( err ) {
        // No error warning
    }
   
    function mount_volume() {
        var myScriptFolderPath = pluginPath + "/resources/"; // Path to the applescript
        app.doScript(File(myScriptFolderPath + "mountvolume.scpt"),ScriptLanguage.applescriptLanguage);
    }

}

//The applescript for mounting volumes

(*set user_name to ""
set Dialog_1 to display dialog "Please enter your user name" default answer ""
set the user_name to the text returned of Dialog_1

set pass_word to ""
set Dialog_2 to display dialog "Please enter your password" default answer "" with hidden answer
set pass_word to the text returned of Dialog_2*)
tell application "Finder"
    try
        mount volume "afp://mysub.mydn.com/myfolder" as user name "myusername" with password "mypassword"
    end try
end tell

--

Thomas B. Nielsen

http://www.nobrainer.dk

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