Использование API Java NIO.2:
import java.nio.file.{Files, Paths, Path, SimpleFileVisitor, FileVisitResult}
import java.nio.file.attribute.BasicFileAttributes
def remove(root: Path): Unit = {
Files.walkFileTree(root, new SimpleFileVisitor[Path] {
override def visitFile(file: Path, attrs: BasicFileAttributes): FileVisitResult = {
Files.delete(file)
FileVisitResult.CONTINUE
}
override def postVisitDirectory(dir: Path, exc: IOException): FileVisitResult = {
Files.delete(dir)
FileVisitResult.CONTINUE
}
})
}
remove(Paths.get("/tmp/testdir"))
Действительно, очень жаль, что API NIO.2 работает с нами в течение стольких лет, и тем не менее его используют немногие, даже если действительно превосходит старый File
API.
Насколько я могу судить, у вас все в порядке.
Одно небольшое замечание, которое я могу сделать, это то, что, вероятно, более интуитивно понятнее записывать адреса выше значения в этих адресах. То есть:
0x2E |-------|
| 0x13 |
0x32 |-------|
Причина в том, что диапазон адресов, охватывающий значение ( 0x2E
, 0x2F
, 0x30
, 0x31
) идет по направлению к следующему адресу 0x32
.
Конечно, вы можете захотеть использовать обозначения, ожидаемые вашим учителем при сдаче экзамена.
Я могу сделать еще один небольшой момент: вероятно, более интуитивно понятнее будет записывать адреса над значением в этих адресах. То есть:
0x2E |-------|
| 0x13 |
0x32 |-------|
Причина в том, что диапазон адресов, охватывающий значение ( 0x2E
, 0x2F
, 0x30
, 0x31
) идет по направлению к следующему адресу 0x32
.
Конечно, вы можете захотеть использовать обозначения, ожидаемые вашим учителем при сдаче экзамена.
Я могу сделать еще один небольшой момент: вероятно, более интуитивно понятнее будет записывать адреса над значением в этих адресах. То есть:
0x2E |-------|
| 0x13 |
0x32 |-------|
Причина в том, что диапазон адресов, охватывающий значение ( 0x2E
, 0x2F
, 0x30
, 0x31
) идет по направлению к следующему адресу 0x32
.
Конечно, вы можете захотеть использовать обозначения, ожидаемые вашим учителем при сдаче экзамена.