在当前目录以外的位置创建 QFile 时出现问题

发布于 2024-10-21 10:42:14 字数 509 浏览 1 评论 0原文

我正在使用安装在 Ubuntu 10.04 上的 Qt 4.7 .... 我无法在当前目录“.”以外的位置创建 qt 文件。

这段代码运行良好:

QFile file("data.txt");
if (!file.open(QIODevice::Append))
{
    qDebug("ERROR WHILE OPENING THE FILE TO APPEND Data");
    return ;
}

但是这段代码失败了(我认为是因为权限的原因):

QFile file("/var/lib/mysql/testdb/data.txt");
if (!file.open(QIODevice::Append))
{
    qDebug("ERROR WHILE OPENING THE FILE TO APPEND Data");
    return ;
}

那么,我该如何解决这个问题并授予程序在文件系统的任何位置创建文件的权限?

I am using Qt 4.7 installed on Ubuntu 10.04 ....
I can't create a qt file inside a location other than the current directory "."

This code works well:

QFile file("data.txt");
if (!file.open(QIODevice::Append))
{
    qDebug("ERROR WHILE OPENING THE FILE TO APPEND Data");
    return ;
}

but this code fails (I think because of the permissions):

QFile file("/var/lib/mysql/testdb/data.txt");
if (!file.open(QIODevice::Append))
{
    qDebug("ERROR WHILE OPENING THE FILE TO APPEND Data");
    return ;
}

So, how can I solve this problem and give the program permissions to create the file wherever at the file system??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

骷髅 2024-10-28 10:42:14

您可以通过以下方法之一快速解决此问题:

  • 以 root 身份运行(这是一个很大的禁忌)
  • 以 root 身份,更改所需目录的权限,chmod /the/dir o+rwx -这允许每个人写入该目录。
  • 以 root 身份更改所需目录的所有者,chown myuser /the/dir - 这可以让您的用户写入该目录。

您可以通过坚持当前用户可以访问的目录来正确解决这个问题 - 权限的存在是有原因的。

You solve this quickly in one of these ways:

  • Run as root (this is a big no-no)
  • As root, change the permissions of the directory you need, chmod /the/dir o+rwx - this lets everyone write to the directory.
  • As root, change the owner of the directory you need, chown myuser /the/dir - this lets your user write to the directory.

You solve this correctly by sticking to directories that your current user can access - permissions are there for a reason.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文