diff --git a/src/main/kotlin/app/termora/transfer/DefaultInternalTransferManager.kt b/src/main/kotlin/app/termora/transfer/DefaultInternalTransferManager.kt index 922b4cf..f83ce73 100644 --- a/src/main/kotlin/app/termora/transfer/DefaultInternalTransferManager.kt +++ b/src/main/kotlin/app/termora/transfer/DefaultInternalTransferManager.kt @@ -2,6 +2,7 @@ package app.termora.transfer import app.termora.* import app.termora.transfer.InternalTransferManager.TransferMode +import app.termora.transfer.TransportPanel.Companion.isWindowsFileSystem import com.jgoodies.forms.builder.FormBuilder import com.jgoodies.forms.layout.FormLayout import kotlinx.coroutines.CoroutineScope @@ -95,8 +96,12 @@ internal class DefaultInternalTransferManager( val context = AskTransferContext(TransferAction.Overwrite, false) for (pair in paths) { if (mode == TransferMode.Transfer && context.applyAll.not()) { + var name = pair.first.name + if (targetWorkdir.fileSystem.isWindowsFileSystem()) { + name = name.replace(":", "-") + } val action = withContext(Dispatchers.Swing) { - getTransferAction(context, targetWorkdir.resolve(pair.first.name), pair.second) + getTransferAction(context, targetWorkdir.resolve(name), pair.second) } if (action == null) { break @@ -272,8 +277,11 @@ internal class DefaultInternalTransferManager( val isDirectory = pair.second.isDirectory val path = pair.first if (isDirectory.not() || mode == TransferMode.Rmrf) { - val transfer = - createTransfer(path, workdir.resolve(path.name), isDirectory, StringUtils.EMPTY, mode, action) + var name = path.name + 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 } diff --git a/src/main/kotlin/app/termora/transfer/TransportPanel.kt b/src/main/kotlin/app/termora/transfer/TransportPanel.kt index d4408ed..4c05eb3 100644 --- a/src/main/kotlin/app/termora/transfer/TransportPanel.kt +++ b/src/main/kotlin/app/termora/transfer/TransportPanel.kt @@ -1164,7 +1164,9 @@ internal class TransportPanel( private fun edit() { 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) editTransferListener.addListenTransfer(transferId) }