From 0c158acbe00668979c97ec91fd3d5cfdde6ed652 Mon Sep 17 00:00:00 2001 From: hstyi Date: Thu, 13 Mar 2025 22:06:44 +0800 Subject: [PATCH] fix: sftp symbolic link --- .../app/termora/sftp/FileSystemViewTableModel.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/app/termora/sftp/FileSystemViewTableModel.kt b/src/main/kotlin/app/termora/sftp/FileSystemViewTableModel.kt index 30b31e2..2e6d213 100644 --- a/src/main/kotlin/app/termora/sftp/FileSystemViewTableModel.kt +++ b/src/main/kotlin/app/termora/sftp/FileSystemViewTableModel.kt @@ -175,7 +175,11 @@ class FileSystemViewTableModel : DefaultTableModel() { /** * 文件类型 */ - open val type by lazy { NativeFileIcons.getIcon(name, isFile).second } + open val type by lazy { + if (path.fileSystem.isWindows()) NativeFileIcons.getIcon(name, isFile).second + else if (isSymbolicLink) I18n.getString("termora.transport.table.type.symbolic-link") + else NativeFileIcons.getIcon(name, isFile).second + } /** * 大小 @@ -212,6 +216,8 @@ class FileSystemViewTableModel : DefaultTableModel() { */ open val isHidden by lazy { path.isHidden() } + open val isSymbolicLink by lazy { path.isSymbolicLink() } + /** * 获取权限 */ @@ -241,6 +247,7 @@ class FileSystemViewTableModel : DefaultTableModel() { override val modified = 0L override val type = StringUtils.EMPTY override val icon by lazy { NativeFileIcons.getFolderIcon() } + override val isSymbolicLink = false } @@ -248,7 +255,8 @@ class FileSystemViewTableModel : DefaultTableModel() { class SftpAttr(sftpPath: SftpPath) : Attr(sftpPath) { private val attributes = sftpPath.attributes - override val isDirectory = attributes.isDirectory + override val isSymbolicLink = attributes.isSymbolicLink + override val isDirectory = if (isSymbolicLink) sftpPath.isDirectory() else attributes.isDirectory override val isHidden = name.startsWith(".") override val size = attributes.size override val owner: String = StringUtils.defaultString(attributes.owner)