在Qt中将文件保存到网络

Saving a file to a network in Qt

本文关键字:保存 网络 文件 Qt      更新时间:2023-10-16

我需要将一个文件保存到我公司的网络中。这需要编码到我的应用程序中,而不使用"文件"对话框或任何东西。当我在没有指定路径的情况下保存文件时,它会将文件完全保存在我的应用程序所在的目录中,但当我尝试这样做时,网络什么也不会发生。这就是我必须保存的。

QFile outfile;
outfile.setFileName("//DTPRIMARY/MyFile.htm");
outfile.open(QIODevice::WriteOnly);
QTextStream out(&outfile);
out << textEdit->toHtml();
out.flush();
outfile.close();

我实际上想把它保存在这里\DTPRIMARYInetpubwwwroot,但去掉了其他文件夹,认为这可能是问题的一部分,但事实并非如此。我使用'/'而不是'',因为有几个地方说要这样做(我从来没有真正理解为什么文件路径必须使用''或'/',所以它可能是错误的idk。)

有人知道怎么做吗/我的代码出了什么问题?

UNC路径应该可以正常工作,您可以使用本地文件进行测试,例如"\?C:MyFile.htm"将是C驱动器顶部名为MyFile.htm的文件

通常路径为\machineshare,例如\dtprimarayshareMyFile.htm

使用"/"的原因是C语言使用\表示下一个字符是特殊的,所以\t是制表符,\n是换行符。DOS是复制的(很抱歉受到的影响)早期的操作系统使用"/"作为文件分隔符,微软不希望DOS看起来太像副本。从那以后,它一直是bug的来源。

你可以用\对C说下一个"真的是一个",但当你必须把\\写成\,把\写成时,很容易出错,所以Windows允许你使用/

刚刚在我的机器上测试过

QFile file("//machinename/downloads/MyFile.htm");
file.open(QIODevice::WriteOnly);
file.write("blah");
file.close();