Nella mia app, mi piace che il Finder OSX copi un file o una cartella.Copia gli elementi tramite Finder e Applescript: come ottenere "l'elemento esiste - sostituire?" dialogo in Finder?
(. Nota: Ho buone ragioni per usare il Finder invece di utilizzare cmds shell, NSWorkspace o altri mezzi, quindi non c'è alcun bisogno di suggerimenti in questa direzione)
Attualmente sto contando su Applescript per chiedendo al Finder di eseguire l'operazione di copia. Ecco un esempio di script per il test:
tell application "Finder"
try
copy file POSIX file "/etc/bashrc" to folder POSIX file "/private/tmp"
-- alternative with same behavior:
--duplicate POSIX file "/etc/bashrc" to POSIX file "/private/tmp"
on error errmesg number errn
display dialog "Error thrown: " & errmesg
end try
end tell
Ora il problema è questo: Se l'elemento di destinazione esiste già, lo script genera un errore e annulla l'operazione di copia.
Tuttavia, avrei preferito visualizzare il Finder del "elemento esiste" dialogo che mostra quando si fa una tale operazione di copia nel Finder in modo interattivo, come questo:
Ora , ecco il punto: Se eseguo questo script dall'app di terze parti Script Debugger, viene visualizzata questa finestra di dialogo!
Quindi, ovviamente, c'è un modo per far sì che il Finder visualizzi la finestra di dialogo anziché lanciare un'eccezione. Ma come? Chi conosce il segreto di questo?
È possibile verificare se il file di destinazione esiste prima e gestire questo caso da soli? –
Paul - Certo che potrei, ma non è rilevante per questa domanda o per la situazione che devo risolvere. –
Scusa - Ho pensato che potrebbe essere una soluzione pragmatica se non c'è modo di ottenere il comportamento richiesto dal Finder. –