I'm writing a program that continuously sets the desktop background to the album art of the current song playing in iTunes, and to do so I am writing the artwork to a file with a random ID number. This means that the desktop will be changing to a different file every time.
Of course, I want to be able to delete all these files after they've been used, so am trying to use do shell script "rm ~rf " & folderName
to delete the entire folder containing the images.
However every time I run my script or even type the full directory into Terminal, I get the error:
"rm: ~rf: No such file or directory rm: Macintosh: No such file or directory rm: HD:Users:BenClose:Desktop:iTunesWallpaper: No such file or directory"
Below is my entire program's code, I have no idea what's going wrong and where, so any help would be greatly appreciated, as I would like anyone who wants it to be able to use this program.
screenNum
refers to which desktop is being changed.
hiddenFile
refers to whether or not the files created will be hidden. "."
if true and ""
if false (A period added to the beginning of a file name will make it hidden).
Basically, what is happening is that the desktop background is being set to the album art 99 times, after which I would like to be able to delete all 99 files and let the process start again.
The error occurs at the very end of the script where it tries to delete the folder of images.
set screenNum to 2
set directoryName to "iTunesWallpaper"
set fileExt to "jpg"
set hiddenFile to ""
set repeatTrue to 1
set loopLimit to 99
set looped to 0
set folderName to ((path to desktop) as text) & hiddenFile & directoryName
repeat while repeatTrue is 1
tell application "Finder"
if (exists folderName) is not true then
make new folder at (path to desktop) as text with properties {name:hiddenFile & directoryName}
end if
end tell
set randID to screenNum
set randLoop to 0
repeat while randLoop is not 9
set randNum to (random number from 0 to 9) as text
set randID to randID & randNum
set randLoop to randLoop + 1
end repeat
tell application "System Events"
set fileName to {((path to desktop) as text) & hiddenFile & directoryName & ":" & randID & "." & fileExt}
set changeDesktop to 0
if process "iTunes" exists then
tell application "iTunes"
if (player state is not stopped) then
if exists artworks of current track then
set changeDesktop to 1
-- get the raw bytes of the artwork into a var
tell application "iTunes" to tell artwork 1 of current track
set srcBytes to raw data
end tell
-- write to file
set outFile to open for access file fileName with write permission
-- truncate the file
set eof outFile to 0
-- write the image bytes to the file
write srcBytes to outFile
close access outFile
end if
end if
end tell
if changeDesktop = 1 then
if exists desktop screenNum then
tell desktop screenNum
set picture to fileName
end tell
end if
end if
end if
end tell
set looped to looped + 1
if looped is loopLimit then
do shell script "rm ~rf " & folderName
set looped to 0
end if
end repeat