Используйте AppleScript для дублирования файла в другую папку с новым именем - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь скопировать файл в указанную папку, но получаю ошибку:

error "Finder получил ошибку: не удается установить файл \" / Users / Andrew / Documents / Финансы / Заявления - Банк и кредитные карты CSVs / 2020-05-01 Отчет за апрель 2020 г. / Шаги / 2020-05-01 Апрель 2020 г. ДО ШАГА 01.xlsm \ "to file \" / Пользователи / Андрей / Документы / Финансы / Бюджетные отчеты / 2020-05-01 Апрель 2020.xlsm \ "." номер -10006 из файла "/ Пользователи / Андрей / Документы / Финансы / Отчеты - CSVs банков и кредитных карт / 2020-05-01 Отчет за апрель 2020 года / Шаги / 2020-05-01 Апрель 2020 ДО ШАГА 01.xlsm"

Я должен использовать AppleScript, потому что я запускаю скрипт из VBA. та часть AppleScript, которая определяет 3 переменные, работает как задумано. Для краткости код выглядит так:

DuplicateFileToStepsFolder("/Users/Andrew/Documents/Finances/Budget Reports/2020-05-01 April 2020.xlsm!/Users/Andrew/Documents/Finances/Statements - Bank And Credit Card CSVs/2020-05-01 April 2020 Report/Steps!BEFORE STEP 01")

on DuplicateFileToStepsFolder(ReportAndStepsPaths)

    --code to split ReportAndStepsPaths into separate strings

    set BudgetReportPath to "/Users/Andrew/Documents/Finances/Budget Reports/2020-05-01 April 2020.xlsm" --this is the file i want to duplicate
    set StepsFolderPath to "/Users/Andrew/Documents/Finances/Statements - Bank And Credit Card CSVs/2020-05-01 April 2020 Report/Steps" --this is the directory I want to duplicate (or copy and move to)
    set BudgetReportStepPath to "/Users/Andrew/Documents/Finances/Statements - Bank And Credit Card CSVs/2020-05-01 April 2020 Report/Steps/2020-05-01 April 2020 BEFORE STEP 01.xlsm" --this is the new file name

    tell application "Finder" to duplicate file BudgetReportPath to folder StepsFolderPath
    --line to rename the moved file would go here
end DuplicateFileToStepsFolder

Копирование, перемещение и переименование также решит мою проблему. Я не пытался выяснить строку переименования. Я уверен, что также нет конфликтов имен файлов.

1 Ответ

0 голосов
/ 03 мая 2020

Проблема в том, что Finder не поддерживает пути POSIX (sla sh разделены).

Либо вы преобразуете все в пути HFS (разделенные двоеточиями) с помощью POSIX file, либо в любом случае используете пути HFS.

Это версия пути HFS, в которой указана базовая папка «Финансы» с относительной path to

set financesFolder to (path to documents folder as text) & "Finances:"

set BudgetReportFile to financesFolder & "Budget Reports:2020-05-01 April 2020.xlsm"
set StepsFolderPath to financesFolder & "Statements - Bank And Credit Card CSVs:2020-05-01 April 2020 Report:Steps:"
set BudgetReportStepName to "2020-05-01 April 2020 BEFORE STEP 01.xlsm"

tell application "Finder"
    set duplicatedFile to duplicate file BudgetReportFile to folder StepsFolderPath
    set name of duplicatedFile to BudgetReportStepName
end tell
...