我有HTML输入我应该提取2个字符串,构建类型为<string 1> / <string 2
的文档标题字符串,从用户mac桌面上的源创建PDF并按照描述命名。
我知道文档名称中的斜线不是一个好主意,但这就是我被要求做的事情。
问题是:正斜杠被解释为mac上的文件夹,而不是文档名称的一部分,这意味着QPainter无法打印到PDF,因为它解释string1 /
是一个没有文件夹的文件夹存在。
BTW省略/
我的代码工作正常。
我该如何逃脱/
?
这是字符串构建逻辑:
QString docTitle;
docTitle.append(string1);
docTitle.append(" / ");
docTitle.append(string2);
答案 0 :(得分:0)
在OS X上,API级别的文件名称与Finder,打开和保存面板等中显示给用户的显示名称不同。
在API级别,文件名只是不能包含斜杠。它们保留用于分隔路径中的名称。没有任何形式的逃避或引用允许它。
但是,您可以在UI中创建一个名称将显示并带有斜杠的文件。
基本上,斜杠(/
)和冒号(:
)字符交换角色。文件的显示名称不能包含冒号,因为它是保留的。 (这是Classic Mac OS中使用的旧HFS文件系统的延续。)因此,从API中的名称到显示名称的转换的一个方面是从冒号转换为斜杠。因此,如果您想要一个显示名称带有斜杠的文件,您实际上使用冒号。
根据API的名称为“重要法律文件06:13:2015.pdf”的文件将在UI中显示为“重要法律文件06/13 / 2015.pdf”。同样,如果用户在保存对话框或Finder中将文件命名为“重要法律文件06/13 / 2015.pdf”,则最终会得到一个名称,当通过API观察时,该名称将是“重要的法律”文件06:13:2015.pdf“。