如何使用Okio检查路径是否为目录?

huangapple go评论48阅读模式
英文:

How do I check if a path is a directory using Okio?

问题

我正在使用Kotlin/Native中的Okio。如何检查路径(例如/path/to/directory)是否表示目录?

检查的范围必须涉及使用文件系统来检查路径是否表示文件或目录。

示例:

"/path/to/directory".toPath().isDirectory // 如果它存在并且是一个目录,应返回true
"/path/to/file.txt".toPath().isDirectory // 如果它不存在或存在但是一个文件,应返回false
英文:

I am using Okio in Kotlin/Native. How do I check if a path (for example /path/to/directory) denotes a directory?

The scope of the check has to involve using the file system to check if the path denotes a file or a directory.

Example:

"/path/to/directory".toPath().isDirectory // should be true if it exists as a directory
"/path/to/file.txt".toPath().isDirectory // should be false if it does not exist or exists but is a file

答案1

得分: 1

以下是两个扩展函数。它们使用FileSystem.metadataOrNull来检索有关路径的元数据,然后继续检查路径是否是目录/普通文件。
如果文件不存在或出现错误,则会返回false。

val fs = FileSystem.SYSTEM

val Path.isDirectory get() = fs.metadataOrNull(this)?.isDirectory == true
val Path.isRegularFile get() = fs.metadataOrNull(this)?.isRegularFile == true
英文:

Here are two extension functions. They use FileSystem.metadataOrNull to retrieve metadata about the path and then proceed with checking if the path is a directory/regular file.
In case the file does not exist or there is an error, false will be returned.

val fs = FileSystem.SYSTEM

val Path.isDirectory get() = fs.metadataOrNull(this)?.isDirectory == true
val Path.isRegularFile get() = fs.metadataOrNull(this)?.isRegularFile == true

huangapple
  • 本文由 发表于 2023年4月4日 04:51:51
  • 转载请务必保留本文链接:https://go.coder-hub.com/75923676.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定