You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Функция cpFile -> copyFile
Используем API-вызов API_FILE_COPY, он копирует файл по новому пути без переименования. Если по новому пути уже есть файл с тем же именем, API срабатывает в зависимости от параметра conflict: выдаёт ошибку либо молча переименовывает копируемый файл. Во втором случае новое имя можно получить из JSON ответа.
Проблема в том, что это не даёт управлять переименованием из самого TC. В API-вызов нельзя передать новое имя файла, только путь. Сейчас копирование с переименованием сделано в два вызова (скопировать + переименовать), но для вышеописанной ситуации это не сработает.
Атомарного решения, кажется, не существует.
Вариант пошагового решения:
Передавать в cpFile флаг overwrite.
Если overwrite = false, перед копированием проверять существование файла с заданным именем, запросить пользователя.
Если overwrite=true, то вызывать API_FILE_COPY с параметром conflict=CLOUD_CONFLICT_RENAME, получаем из ответа новое имя файла (оно гарантированно будет уникальным). Удаляем имеющийся файл, и переименуем скопированный файл в нужное имя.
Тот же алгоритм применить для mvFile.
The text was updated successfully, but these errors were encountered:
Функция cpFile -> copyFile
Используем API-вызов API_FILE_COPY, он копирует файл по новому пути без переименования. Если по новому пути уже есть файл с тем же именем, API срабатывает в зависимости от параметра conflict: выдаёт ошибку либо молча переименовывает копируемый файл. Во втором случае новое имя можно получить из JSON ответа.
Проблема в том, что это не даёт управлять переименованием из самого TC. В API-вызов нельзя передать новое имя файла, только путь. Сейчас копирование с переименованием сделано в два вызова (скопировать + переименовать), но для вышеописанной ситуации это не сработает.
Атомарного решения, кажется, не существует.
Вариант пошагового решения:
Тот же алгоритм применить для mvFile.
The text was updated successfully, but these errors were encountered: