有没有办法可以找到Windows,OSX或Linux上存储字体的位置?如果没有,有没有办法可以保证所有3个平台的某些路径(例如X:/ Windows / Fonts /)? ifdefs会用于这些吗?
由于
答案 0 :(得分:11)
这将是其中一个“简单”问题,可能会有一个过分解决方案,具体取决于您需要此信息的内容。
我将不得不为Linux版本的答案道歉,因为Linux发行版的字体管理不一致,可以非常可配置,可以受桌面环境影响,可以远程服务等。
检查环境
您可以通过使用为特定环境定义的宏来检查各种平台。
#if defined(_WIN32)
_WIN32
是为32位和64位Windows定义的。#if defined(_APPLE_) && defined(_MACH_)
_APPLE_
是为所有Apple计算机定义的,如果系统支持Mach系统调用,则定义_MACH_
a la Mac OSX #if defined(linux) || defined(__linux)
字体目录位置
%WINDIR%\fonts
。 /System/Library/Fonts
- 系统所需的字体。不要碰这些。/Library/Fonts
- 所有用户都可以使用的其他字体。如果要将字体用于其他应用程序,通常会出现这种情况。~/Library/Fonts
- 特定于每个用户的字体。/Network/Library/Fonts
- 为网络上的用户分享的字体。/usr/share/fonts
,/usr/local/share/fonts
和用户特定的~/.fonts
/etc/fonts/fonts.conf
或/etc/fonts/local.conf
中配置了字体目录。资源:
答案 1 :(得分:0)
假设目标操作系统具有字体文件夹。例如,Linux安装完全可以仅限控制台,而且根本没有字体目录。
无论如何,我最好的猜测是没有平台独立的方式。您可以编写自己的平台独立功能,但在其中必须检查当前的操作系统(通过一些IFDEF,我不能说什么),然后调用正确的功能。但同样 - 我不太确定你可以在Linux下获得它。