2

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

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

我实际上想将其保存在这里,\\DTPRIMARY\Inetpub\wwwroot但取出了其他文件夹,认为这可能是问题的一部分,但事实并非如此。而且我使用'/'而不是'\',因为这就是一些地方所说的(我从来没有真正理解为什么文件路径必须使用'\'或'/'虽然它可能是错误的同上。)

有谁知道该怎么做/我的代码有什么问题?

4

1 回答 1

1

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

通常路径是\\machine\share 例如\\dtprimaray\share\MyFile.htm

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

你可以对 C 说下一个 \ 真的是 \ - 但是当你必须写到mean和to mean\\时很容易出错 - 所以 Windows 让你使用\\\\\\\\\/

刚刚在我的机器上测试过

QFile file("//machinename/downloads/MyFile.htm");
file.open(QIODevice::WriteOnly);
file.write("blah");
file.close();
于 2012-08-21T19:41:04.543 回答