Я хочу удалить один файл и переименовать другой файл со старым файлом, но я не могу переместить этот файл, поскольку java бросает java.nio.file.FileAlreadyExistsException
. фрагмент кода Я используюFiles.move и Files.copy бросает java.nio.file.FileAlreadyExistsException
static void swapData(String origFilePath, String tempFilePath) throws IOException{
Path tempPath = FileSystems.getDefault().getPath(tempFilePath);
Path origPath = FileSystems.getDefault().getPath(origFilePath);
try{
String origFileName = null;
File origFileRef = new File(origFilePath);
if(Files.exists(origPath)){
origFileName = origFileRef.getName();
Files.delete(origPath);
if(Files.exists(origPath))
throw new IOException("cannot able to delete original file");
}
if(origFileName != null)
Files.move(tempPath, tempPath.resolveSibling(origFileName), StandardCopyOption.REPLACE_EXISTING);
}catch(IOException e){
throw e;
}
}
Вот исключение я ПОЛУЧАТЬ на
Files.move(tempPath, tempPath.resolveSibling(origFileName), StandardCopyOption.REPLACE_EXISTING);
Кроме того, когда я вижу этот файл в окне проводника, его эскиз присутствует, но не может в состоянии открыть его. Я не могу понять, почему это происходит, и если я использую REPLACE_EXISTING, почему он выбрасывает исключение FileAlreadyExistsException.
Также я отредактировал предыдущий вопрос, так как он четко не указан.
Пожалуйста, помогите.
Anuj
Можете ли вы указать свои ** на ** и ** из ** каталогов? –
Уверен, это не проблема локального разрешения файловой системы? BTW: Я думаю, вы перепутали пути? «destPath» хранится в «moveFrom». Может быть, просто вопрос вкуса, но цель скорее должна быть целью («moveTo»). ;) ** edit ** Что касается разрешений: вы проверили, открыт ли файл, и у вашего пользователя есть разрешения на его доступ и запись в целевой каталог? – DoNuT
Пожалуйста, обратитесь к новому заданному вопросу – aga