在 Qt 中区分文件路径和 url

Make the difference between a file path and a url in Qt

如果我有一个可以是 fileURL 的字符串,是否有现成的巧妙方法我可以用来区分它们吗?

例如:

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

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

好吧,您可能想从这些字符串构造一个 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