2016-03-03 3 views
0

Я пытаюсь скопировать файл из одного места в другое, заменяя старый файл, и я получаю эту ошибку: The method copy(Path, Path, CopyOption...) in the type Files is not applicable for the arguments (File, File, StandardCopyOption)Копирование файлов с Java

Мой код выглядит следующим образом

Files.copy(file1, file2, StandardCopyOption.REPLACE_EXISTING); 

Я также попытался с помощью этого метода:

CopyOption[] options = new CopyOption[]{ 
    StandardCopyOption.REPLACE_EXISTING 
}; 
Files.copy(file1, file2, options[0]); 

И я получаю эту ошибку: The method copy(Path, Path, CopyOption...) in the type Files is not applicable for the arguments (File, File, CopyOption)

Любые мысли?

+1

Сообщение об ошибке довольно ясно, я бы сказал: вам нужно предоставить объект Path вместо FIle. –

ответ

2

Вам необходимо пройти Path объекты, а не File S:

Files.copy(file1.toPath(), file2.toPath(), StandardCopyOption.REPLACE_EXISTING); 
+0

...... Да, это то, что я получаю за то, что не прочитал сообщение об ошибке. Я просто предполагал, что проблема была в StandardCopyOption – Jason

+0

. Последний параметр - это параметр varargs, который позволяет вам передать один экземпляр «CopyOption». – manouti

1

Судя по сообщению полезной ошибки, file1 и file2 являются File объекты.

Но вы должны пройти Path объектов к методу copy.

Таким образом, вы должны использовать

Files.copy(file1.toPath(), file2.toPath(), StandardCopyOption.REPLACE_EXISTING);

вместо этого.

0

Нельзя использовать файлы. Вместо этого используйте пути.

Files.copy(file1.toPath(), file2.toPath(), StandardCopyOption.REPLACE_EXISTING); 
-1

Вы попробовали отливку StandardCopyOption?

Try:

CopyOption co = (CopyOption) StandardCopyOption.REPLACE_EXISTING; 

На основании ошибки вы получаете, то мне кажется, что вы используете файлы, даже если метод Files.copy() использует InputStream или путь, а не файлы.

Это может быть дубликатом Copy file in Java and replace existing target

Надеюсь, что это помогает. Удачи Удачи :)

Смежные вопросы