【问题标题】:Qt: Is there a class for shared folders?Qt:有共享文件夹的类吗?
【发布时间】:2014-08-14 02:04:16
【问题描述】:

Ftp 有 Qftp 类,但是否有 共享文件夹 类?像“QSmbclient”?

我的目标是自动传输共享文件夹中的文件(Windows 或 Linux 设置),因此不建议使用 QFileDialog,就像在此线程 Qt and files in shared folders 中那样。

我目前的方法:

  1. 使用 QProcess:挂载文件夹并粘贴文件(路径将可见,因此我需要在文件传输后卸载它)。
  2. 使用 QProcess: .sh 文件和 smbclient 命令。

是否可以像在 QFtp 中一样只使用 connectToHost()put() 函数?

如果没有,有没有更有效的方法?

【问题讨论】:

  • 在典型的 linux/Unix 机器上,rsync 通常是您想要的解决方案,我不认为 Qt 项目以库形式提供类似 rsync 的东西,我认为如果您想要以编程方式获得这种功能,或者只是为此找到另一个 C/C++ 库,您应该自己编写类似的代码。

标签: c++ qt samba qt4.7


【解决方案1】:

Qt 中没有对 smb 协议的原生支持。但是您可以简单地使用 libsmbclient 库而不是 smbclient。另请注意,libsmbclient 不是线程安全的,因此如果您希望扫描范围,则需要多处理。以下 Qt 项目也是如此:

https://github.com/adnan-kamili/ShareScanner

【讨论】:

  • 我认为这对我来说很复杂,因为我需要删除代码上的 gui,并且它仍在使用 qprocess,我认为这也不会有效。请在这件事上说服我。
  • @reggie_jimac 正如我所提到的,lib 不是线程安全的,因此扫描范围的唯一选项是创建写入“ip-share-scan.c”文件的最小 smb 客户端的多个进程。 “ip-share-scan.c”包含您要查找的代码。
猜你喜欢
  • 1970-01-01
  • 2022-06-30
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-09
相关资源
最近更新 更多