【问题标题】:Make the difference between a file path and a url in Qt在 Qt 中区分文件路径和 url
【发布时间】:2018-02-05 14:04:14
【问题描述】:

如果我有一个可以是 fileURL 的字符串,是否有任何现有的聪明方法可以用来区分它们?

例如:

这是加载设计器 UI 文件,所以我需要制作远程文件的本地临时副本。 所以底线是知道我什么时候需要下载文件。

【问题讨论】:

  • 你能举个例子吗?
  • 问题中添加的示例。

标签: qt qurl


【解决方案1】:

好吧,您可能想用这些字符串构造一个QUrl 对象,并验证这些 URL 是否引用本地文件。即:

static bool isLocalFile(const QString &str)
{
    return QUrl::fromUserInput(str).isLocalFile();
}

用你的字符串

QString s1("/Users/user/Documents/mydoc.txt");
QString s2("c:\\Program Files\\myapp\\mydoc.doc");
QString s3("https://mywebsite.com/mydoc.txt");
QString s4("ftp://myserver.com/myfile.txt");

bool b = isLocalFile(s1); // a path
b = isLocalFile(s2); // a path
b = isLocalFile(s3); // not a path
b = isLocalFile(s4); // not a path

【讨论】:

  • 是的,这个其实更好
【解决方案2】:

您可以使用给定名称创建一个QFile,并检查它是否为exists()。如果不尝试将字符串解析为 URL。

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 2013-10-16
    • 2021-07-18
    • 2014-07-13
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多