Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

pcwiz

macrumors member
Original poster
May 28, 2008
55
0
Hi,

I'm creating a program where one of the tasks is to copy thousands of files with root privileges. I know there is no easy way to perform file operations with root privileges using Objective C, so I decided to put the series of do shell script commands in an AppleScript script file:

set filelist to {"file1", "file2", "file3", "etc"}
repeat with i in filelist
do shell script "cp -R " & i & " /destination_folder" with administrator priveleges
end repeat

Basically I feed it a list of files, then it does a loop and for each file in the list it does a copy operation using do shell script. I am going to invoke this script in my Objective C app using NSAppleScript. My question is, is it possible to put in a progress bar for the file copy procedure, assuming that I know the total number of files to be copied? This is easy to do in plain Objective C, but since the file copying is done in an AppleScript, I'm unsure of how im going to do this.

Any help would be appreciated
Thanks
 
One way would be to just make the file copy line the AppleScript part and pull the looping out into Objective-C code and feed cp one file at a time. Then you can use Objective-C for all the the progress bar stuff. You'd probably want to make sure you wait for each copy to complete before starting the next one for the progress to be accurate, so I don't know how efficient it would be to do it that way.

You could also do something like pipe the std output back to your app and use the verbose (-v) flag, then do some text parsing as it will print out a line as each file is copied.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.