我应该使用什么功能在mac OS X中打开文件

What function should I use to open file in mac OS X?

本文关键字:文件 OS mac 什么 功能 我应该      更新时间:2023-10-16

我使用C++生成器来创建我的跨平台应用程序。在应用程序中,我将通过打开文件对话框获取文件名/路径。在Windows中,处理Unicode字符串是没有问题的。(例如"C:\測試"(在mac OS X中,我可以从UnicodeString获得正确的字符串。但是我找不到将其转换为字符数组并使用"fopen"正确打开文件的好方法。我试图直接将UnicodeString分配给AnsiString,但它变成了"C:\??"。因为"fopen"只接受"char*",而UnicodeString只能导出"char16*",所以我需要将其转换为"fopen"的char。知道吗?

>仅仅因为fopen()需要char*并不意味着您应该给它一个ANSI字符串。 OSX 上的 POSIX API 接受 UTF-8 编码的文件名,因此请使用 UTF8String 而不是 AnsiStringchar*可以指向 UTF-8 字符串。

否则,请勿直接使用 fopen()。 改用 RTL 自己的函数,例如System.SysUtils.hpp单元中的FileCreate()/FileOpen(),或单元System.Classes.hpp中的TFileStream类。 让 RTL 在内部决定如何为您与平台 API 交互。