mirror of
https://github.com/TermoraDev/termora.git
synced 2026-01-15 18:02:58 +08:00
fix: file name containing : cannot be transferred
This commit is contained in:
@@ -2,6 +2,7 @@ package app.termora.transfer
|
|||||||
|
|
||||||
import app.termora.*
|
import app.termora.*
|
||||||
import app.termora.transfer.InternalTransferManager.TransferMode
|
import app.termora.transfer.InternalTransferManager.TransferMode
|
||||||
|
import app.termora.transfer.TransportPanel.Companion.isWindowsFileSystem
|
||||||
import com.jgoodies.forms.builder.FormBuilder
|
import com.jgoodies.forms.builder.FormBuilder
|
||||||
import com.jgoodies.forms.layout.FormLayout
|
import com.jgoodies.forms.layout.FormLayout
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
@@ -95,8 +96,12 @@ internal class DefaultInternalTransferManager(
|
|||||||
val context = AskTransferContext(TransferAction.Overwrite, false)
|
val context = AskTransferContext(TransferAction.Overwrite, false)
|
||||||
for (pair in paths) {
|
for (pair in paths) {
|
||||||
if (mode == TransferMode.Transfer && context.applyAll.not()) {
|
if (mode == TransferMode.Transfer && context.applyAll.not()) {
|
||||||
|
var name = pair.first.name
|
||||||
|
if (targetWorkdir.fileSystem.isWindowsFileSystem()) {
|
||||||
|
name = name.replace(":", "-")
|
||||||
|
}
|
||||||
val action = withContext(Dispatchers.Swing) {
|
val action = withContext(Dispatchers.Swing) {
|
||||||
getTransferAction(context, targetWorkdir.resolve(pair.first.name), pair.second)
|
getTransferAction(context, targetWorkdir.resolve(name), pair.second)
|
||||||
}
|
}
|
||||||
if (action == null) {
|
if (action == null) {
|
||||||
break
|
break
|
||||||
@@ -272,8 +277,11 @@ internal class DefaultInternalTransferManager(
|
|||||||
val isDirectory = pair.second.isDirectory
|
val isDirectory = pair.second.isDirectory
|
||||||
val path = pair.first
|
val path = pair.first
|
||||||
if (isDirectory.not() || mode == TransferMode.Rmrf) {
|
if (isDirectory.not() || mode == TransferMode.Rmrf) {
|
||||||
val transfer =
|
var name = path.name
|
||||||
createTransfer(path, workdir.resolve(path.name), isDirectory, StringUtils.EMPTY, mode, action)
|
if (workdir.fileSystem.isWindowsFileSystem()) {
|
||||||
|
name = name.replace(":", "-")
|
||||||
|
}
|
||||||
|
val transfer = createTransfer(path, workdir.resolve(name), isDirectory, StringUtils.EMPTY, mode, action)
|
||||||
return if (transferManager.addTransfer(transfer)) FileVisitResult.CONTINUE else FileVisitResult.TERMINATE
|
return if (transferManager.addTransfer(transfer)) FileVisitResult.CONTINUE else FileVisitResult.TERMINATE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1164,7 +1164,9 @@ internal class TransportPanel(
|
|||||||
|
|
||||||
private fun edit() {
|
private fun edit() {
|
||||||
for (path in files.map { it.first }) {
|
for (path in files.map { it.first }) {
|
||||||
val target = Application.createSubTemporaryDir().resolve(path.name)
|
var name = path.name
|
||||||
|
if (SystemInfo.isWindows) name = name.replace(":", "-")
|
||||||
|
val target = Application.createSubTemporaryDir().resolve(name)
|
||||||
val transferId = internalTransferManager.addHighTransfer(path, target)
|
val transferId = internalTransferManager.addHighTransfer(path, target)
|
||||||
editTransferListener.addListenTransfer(transferId)
|
editTransferListener.addListenTransfer(transferId)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user