Copy link to clipboard
Copied
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....
1 Correct answer
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");
Copy link to clipboard
Copied
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");
Copy link to clipboard
Copied
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
Copy link to clipboard
Copied
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?');
}
Copy link to clipboard
Copied
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

