В общем, у меня есть 2 поля EditText(id - filepath, filepath2), кнопка(id-perform). Нужно поменять местами содержимое файлов. Суть такая, когда вводят правильный путь к объектам, то они обмениваются значениями,иначе выводится "error".Если есть какие-то ошибки в коде, буду рад услышать.Заранее спасибо!
perform.setOnClickListener {
val path1 = File(
Environment.getExternalStorageDirectory(),
"$filepath")
val path2 = File(
Environment.getExternalStorageDirectory(),
"$filepath2")
val fileExists1 = path1.exists()
val fileExists2 = path2.exists()
if(fileExists1) {
}
else filepath.setText("error", TextView.BufferType.EDITABLE)
if(fileExists2) {
}
else filepath2.setText("error", TextView.BufferType.EDITABLE)
}
maaGames, Можете пожалуйста развёрнуто ответить? Что не пытаюсь сделать, не работает. Постоянно в полях error,что странно, ведь условии path.exists() должно выполняться. Почему никто не может дать полного ответа, что самому приходиться догадываться что вы имели ввиду.У меня как-будто какой-то баг, оно не переименовывает файлы с помощью renameTo().
hawkkiller, val p2 это ошибка форматирования или двойная кавычка в конце имени и правда присутствует?
в приведённом коде p2 переименовывается в p1, соответственно и NOPE, что файла p2 не существует.
maaGames, насколько я понимаю, сейчас метод move() уже не работает или устарел, даже добавив библиотеку java.nio.file.Files не работает.Не сочтите за наглость и доставучесть, но как мне, допустим поменять два файла названиями?У меня просто есть тесты на espresso и там сначала 2 недействительных имен файлов вводится, а потом уже которые есть
hawkkiller,
сперва проверить, что оба файла существуют. Если оба существуют, то p1 переименовывается в любое временное название, p2 переименовывается в название p1, потом временное название переименовывается в p2. Т.е. нельзя сразу переименовать p1 в p2, потмоу что p2 уже существует.
hawkkiller, Не нужно создавать временный файл. Нужно переименовать существующий во временный. т.е. никакой some_file не нужен, нужно лишь имя.
path1.renameto("временный");
path2.renameTo(filepath1);
path1.renameto(filepath2);
move ещё два аргумента содержит с путём исходного и путём целевого файла. Странн, что без аргументов компилируется.