I’m trying to read the contents of a file in the temporary items folder, but keep getting “File Permission Error”
#set qbAuthFile to (path to desktop folder as text) & "qb.dat" -- this works fine
set qbAuthFile to (path to temporary items folder as text) & "qb.dat" -- this gives permissions errors in Catalina
tell application "Finder" to set theXmlContents to (read file qbAuthFile)
The same file on the desktop reads fine, it is only when I put it in the temp folder that it has issues. Never been an issue prior to Catalina
Is there a change to the code I need, or is there something fundamentally different about the temporary items folder in Catalina that will prevent its use in this way? I often use the temp folder to pass info from one script to the next, etc
Really odd. I tried this on a different machine, and got the same error. Brand new text file, created on the desktop, copied into the temp folder. I was hoping it was something on my other machine. Both on 10.15.4
set target_file to (path to temporary items folder as string) & "qb.dat"
my writeFile("Hello World", target_file, false)
set qbAuthFile to (path to temporary items folder as text) & "qb.dat"
set theXmlContents to (read file qbAuthFile)
This worked fine when the same script wrote to the temp folder. But when I tried to read a file that was created by a different script (or maybe the same script in a previous run), then it gave the permission error in the temporary folder. If the first script wrote the file to the desktop, all was fine.
I think I may have figured it out though, at least partially. I had not given my script, or for that matter Script Debugger, “full Disk Access” in the dreaded Catalina ‘Security & Privacy’ System Preferences. I know my main script had asked for access to the desktop folder at one point, but I guess it doesn’t ask for permission to the temp folder? Either way, when I gave Script debugger full disk access, it read the file fine with the code above.
On a side note, in this I also discovered that a trick I used to use a lot to see if a file existed will have to change. I often used:
set theVariable to (path to desktop folder as text) & "myfile.txt"
try
theVariable as alias
--it's there
on error
-- it's not there
end try
If the file wasn’t there the error would say ‘Macintosh HD:Users:sdye:Desktop:myfile.txt’ wasn’t found but in Catalina it gives the error Can’t make ‘Macintosh HD:Users:sdye:Desktop:myfile.txt’ into type alias
While that essentially is saying the same thing, it’s damn annoying since I expected the other verbiage and looked for it in my scripts at times. Somewhere in-between these two issues seems to be where the bug in my larger code lies…