2

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

例如:

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

4

2 回答 2

5

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

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
于 2018-02-05T14:39:45.480 回答
1

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

于 2018-02-05T14:35:36.363 回答