Как переместить/скопировать файл и переименовать в случае конфликта

Есть ли какой-то API/библиотека для перемещения или копирования файла, а затем есть возможность переименовать новый файл, если есть конфликт с другим файлом, существующим в месте назначения?

Я использую Wakanda и есть File API с moveTo. Этот метод имеет параметр overwrite, если мы передаем true или 'Overwrite' и false или 'KeepExisting'. Этот метод забывает одну опцию, которая является классической при работе с файлом: 'KeepBoth'. Это означает, что он переименует новый файл со счетчиком.

А пока я добавляю UUID в конец файла.

Мне интересно, как другие API обрабатывают этот случай, когда нам нужно переместить и переименовать в случае конфликта.


person Ganbin    schedule 16.06.2015    source источник


Ответы (1)


Обычно вы будете использовать ajax и вызывать скрипт на стороне сервера, чтобы проверить, существует ли файл. Вы можете добавить номер к имени файла, чтобы предотвратить конфликт.

PHP-пример

$path = "link/to/path";
$chk = $path;
$i = 0;

while (file_exists($chk)){
    $chk = $path.$i
    $i++;
}

Если вы хотите перезаписать его, вы просто используете

file_put_contents($path, $content);
person oshell    schedule 16.06.2015
comment
Спасибо, этот пример хорош для PHP. Мой вопрос касается серверного javascript. Я вижу в методе file_put_contents есть параметр FILE_APPEND, который будет переименовывать файл. Это именно тот параметр, который я ищу в существующем API. - person Ganbin; 16.06.2015
comment
js на стороне сервера означает, что вы используете nodejs? - person oshell; 16.06.2015