【问题标题】:Write to device directly in QT直接在 QT 中写入设备
【发布时间】:2018-03-06 07:02:43
【问题描述】:

我想将一些iso文件写入闪存驱动器,我已经尝试过:

Qfile file(":/myiso.iso");
file.open(QIODevice::ReadOnly);
QFile dest("\\.\PysicalDrive1");
dest.open(QIODevice::WriteOnly);
while(!file.atEnd()) {
    dest.write(file.read(512));
}
dest.close();
file.close();

但运行此代码后,驱动器 D(我安装的闪存盘)没有任何反应 如何使用 qt 在 Windows 中将 iso 复制到闪存盘?

【问题讨论】:

  • 你为它写程序的原因是什么?已经有很多程序可以直接写入 USB 驱动器,并使它们可启动(写入原始 CD/DVD ISO 可能无法做到)。您的程序应该解决哪些其他程序无法解决的具体问题?
  • @Someprogrammerdude 我已经开发了一个程序,它的某些部分应该加载一些定制的 linux iso 到 flash 并且最终用户没有经验,所以我更喜欢在我的应用程序中编写 iso 到 flash 而不是使用此任务的第三方程序。
  • 请出示真实代码。显示的代码至少有一个错字,并且没有openfiledest
  • 您要将文件复制到 USB 存储设备吗?如果是,请与 this 重复
  • @Jiu 任何类型的存储,但通常是 USB 存储

标签: c++ windows qt


【解决方案1】:

QFile 不能代表磁盘驱动器设备。如果有兴趣开发自己的低级磁盘读写实用程序,您应该从QIODevice 派生您自己的类,它是QFile 的(祖)父类。

您可以在 libburnia 或 libburn(我曾经看过该代码)之类的项目中找到这些原则甚至更好的工作代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多