CkFtp PutTree不再与UNC路径一起使用

时间:2020-07-01 17:13:10

标签: chilkat chilkat-ftp

从Chilkat-Library开始的版本9.5.0.76起,CkFtp2的PutTree函数不再适用于UNC路径。它试图像本地UNC路径一样更改remotedir。

代码示例:

CkFtp2 ftp;
ftp.put_Hostname("ftp.example.com");
ftp.put_Username("test");
ftp.put_Password("test");

bool success = ftp.Connect();
success = ftp.ChangeRemoteDir("/");
success = ftp.PutTree("\\\\server\\daten\\Ent\\Seb\\Versionssystem");
success = ftp.Disconnect();

Chilkat日志:

PutTree:
DllDate: Feb 24 2020
ChilkatVersion: 9.5.0.82
UnlockPrefix: xxxxx
Architecture: Little Endian; 32-bit
Language: Visual C++ 2017 (32-bit)
VerboseLogging: 1
putTree2:
    localRootDir: \\server\daten\Ent\Seb\Versionssystem
    ProgressMonitoring:
        enabled: no
        heartbeatMs: 0
        sendBufferSize: 65536
        (leaveContext 32ms)
    mode 0: Upload all files.
    PlanOnly: 0
    Mode: 0
    PreviewOnly: 0
    RecursiveDescend: 1
    autoGetSizeForProgress: False
    rootDir: //server/daten/Ent/Seb/Versionssystem/
    pwd:
        simpleCommand:
            sendCommand:
                prepControlChannel:
                    (leaveContext 15ms)
                sendingCommand: PWD
                (leaveContext 15ms)
            readCommandResponse:
                replyLineQP: 257 "/" is your current location
                (leaveContext 16ms)
            (leaveContext 31ms)
        (leaveContext 62ms)
    remoteBaseDir: /
    initialCurrentRemoteDir: /
    changeRemoteDir:
        simplePathCommand:
            simpleCommand:
                sendCommand:
                    prepControlChannel:
                        (leaveContext)
                    sendingCommand: CWD /server/daten/Ent/Seb/Versionssystem
                    (leaveContext 16ms)
                readCommandResponse:
                    replyLineQP: 550 Can't change directory to /server/daten/Ent/Seb/Versionssystem: No such file or directory
                    (leaveContext 16ms)
                (leaveContext 47ms)
            Simple path command failed.
            statusCode: 550
            reply: 550 Can't change directory to /server/daten/Ent/Seb/Versionssystem: No such file or directory
            Do not use the leading forward slash.
            Retrying without forward slash.
            simpleCommand:
                sendCommand:
                    prepControlChannel:
                        (leaveContext)
                    sendingCommand: CWD server/daten/Ent/Seb/Versionssystem
                    (leaveContext 31ms)
                readCommandResponse:
                    replyLineQP: 550 Can't change directory to server/daten/Ent/Seb/Versionssystem: No such file or directory
                    (leaveContext 125ms)
                (leaveContext 156ms)
            Simple path command failed.
            statusCode: 550
            reply: 550 Can't change directory to server/daten/Ent/Seb/Versionssystem: No such file or directory
            (leaveContext 250ms)
        (leaveContext 282ms)
    ChangeRemoteDir failed (2)
    dir: /server/daten/Ent/Seb/Versionssystem
    pwd:
        simpleCommand:
            sendCommand:
                prepControlChannel:
                    (leaveContext)
                sendingCommand: PWD
                (leaveContext 16ms)
            readCommandResponse:
                replyLineQP: 257 "/" is your current location
                (leaveContext 15ms)
            (leaveContext 63ms)
        (leaveContext 63ms)
    currentRemoteDir: /
    originalDir: /
    changeRemoteDir:
        simplePathCommand:
            simpleCommand:
                sendCommand:
                    prepControlChannel:
                        (leaveContext)
                    sendingCommand: CWD /
                    (leaveContext 16ms)
                readCommandResponse:
                    replyLineQP: 250 OK. Current directory is /
                    (leaveContext 15ms)
                (leaveContext 47ms)
            (leaveContext 63ms)
        (leaveContext 63ms)
    (leaveContext 563ms)
Failed.
(leaveContext 610ms)

直到版本9.5.0.75,此代码才能正常工作。 这是一个错误还是我错过了一个新的标志/选项来将行为设置为旧的?

1 个答案:

答案 0 :(得分:0)

我在 9.5.0.82 上遇到了同样的错误。原来改成root ftp.ChangeRemoteDir("/") 是罪魁祸首。我们拥有的帐户没有 root 权限。

ChangeRemoteDir 命令没有出错,但每次请求后都会产生“无法将目录更改为...没有这样的文件或目录”错误。

ftp.PutTree 命令在跳过对 root 的更改后起作用。

相关问题