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.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
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user