使用 Libssh 将文件从服务器复制到客户端:分配文件复制目标路径时出现问题
Copying a file from a server to client using Libssh: issues with assigning file copy destination path
我想将文件从服务器复制到客户端,我已经连接了服务器,我可以在服务器的特定文件中添加一些内容。我已经完成了这个教程,因此我根据教程编写了一些代码。但它不起作用。我知道在获取目标路径时出现一些错误。在调试时,我收到此错误引发未处理的异常:读取访问冲突。 文件为空...我发现">错误在 fd (sftp_file fd;( 中,我分配了路径(客户端("C:/Users/Sami/Desktop/",我想从"/home/server/Desktop/sa/wi.exe"复制 wi.exe"这个路径(服务器(。我该如何纠正此问题?
access_type = O_RDONLY;
file = sftp_open(sftp, "/home/server/Desktop/sa/wi.exe",access_type,0);
fd = sftp_open(sftp,"C:/Users/Sami/Desktop/", O_CREAT, 0);
nbytes = sftp_read(file, buffer, sizeof(buffer));
nwritten = sftp_write(fd, buffer, nbytes);
sftp_close(file);
您应该只对远程计算机上的文件使用 sftp_open、sftp_read 和 sftp_write。对于本地计算机上的文件,只需使用正常的文件函数和类(例如 fopen 或 fstream(。
例如
access_type = O_RDONLY;
file = sftp_open(sftp, "/home/server/Desktop/sa/wi.exe",access_type,0);
FILE* fd = fopen("C:/Users/Sami/Desktop/wi.exe", "w");
nbytes = sftp_read(file, buffer, sizeof(buffer));
nwritten = fwrite(buffer, sizeof(char), nbytes, fd);
sftp_close(file);
fclose(fd);
此外,您错过了目标路径上的文件名,正如πάντα ῥεῖ所评论的那样。
相关文章:
- 复制文件流C++静态变量
- 如何递归复制文件和目录
- 复制文件的最佳方式是什么,以便我可以在复制过程中轻松取消复制?
- 复制文件成功,移动文件失败,参数相同 - C++
- 从 QProcess 复制文件夹的内容
- 以非常低的资源要求强制复制文件
- binding.gyp:如何使用"copies"部分在多个位置复制文件
- 如何在 Visual Studio 2015 中的构建结束时复制文件
- 自复制文件到新位置tchar不兼容
- 当我使用fs.rdbuf()复制文件时,我会丢失一些数据
- C++如何复制文件 * 指针
- 复制文件时是否可以自动创建不存在的目录?
- 复制文件时如何调用取消?(使用复制文件 ex 函数和复制进度例程回调函数)
- Linux复制文件连接到节点JS / Python / C / C 之后
- 使用C++在 Linux 中复制文件的有效方法
- 我可以在锁定文件后复制文件吗?
- 在线程中复制文件以防止冻结应用程序
- 如何使用libssh和SFTP在C/C++中复制文件
- 如何复制文件的二进制数据
- 使用 IFileOperation 复制文件 (C++)