Код: Выделить всё
file.copyRecursively(File(target, file.name), overwrite = true)
file.deleteRecursively()
< /code>
Интересная причуда устройства, на которое я нацелен, заключается в том, что оно не показывает стандартное уведомление о подключении диска, которое позволяет пользователю явно выбросить. Я показываю состояние прогресса в пользовательском интерфейсе, когда файлы перемещаются (с приведенным выше кодом), чтобы сигнализировать о том, что диск не должен быть выведен, но если я быстро изгнал после того, как я часто заканчиваю файлами 0b на USB -дисков (поскольку файлы перемещаются с локального диска на диск). Мне удалось исправить это (насколько я могу судить), написав модифицированную версию Copyrecurbirty
Код: Выделить всё
this.inputStream().use { input ->
target.outputStream().use { output ->
input.copyTo(output, bufferSize)
output.flush()
output.fd.sync()
}
}
< /code>
Теперь состояние прогресса пользовательского интерфейса показывается достаточно долго, что, если USB -диск вытащится сразу после того, как приложение останавливается, показывают его, файлы не повреждены на диске. Я предполагаю, что это будет иметь значение в том, как удаления «совершены» в Exfat (в отличие от FAT32). Я попробовал хитрость FSYNC
Подробнее здесь: https://stackoverflow.com/questions/796 ... -usb-drive