文件操作API在fileapi.h和stdio.h中的WP8差异?

时间:2013-07-04 10:53:30

标签: file windows-phone-8 location stdio fileapi

根据Supported Win32 APIs for Windows Phone 8,WP8支持fileapi.h中的许多文件操作API,如CreateFile2,ReadFile,WriteFile,......

但是当我加入<stdio.h>时,我可以使用fopen,fread,fwrite,......

使用这两个API,我可以创建和读/写文本文件。

CreateFile2("hello.txt", ...);
fopen("hello.txt", ...);

...表示其他参数,对此问题不重要

另一件事是我不知道该文本文件所在的位置。安装位置不是这样,因为它是只读位置。另一种情况是本地文件夹,但我没有指定任何本地文件夹路径。

那些API(fileapi.hstdio.h)之间有什么区别?它们在哪个位置上作用?

P / S:我正在使用WP运行时组件

1 个答案:

答案 0 :(得分:0)

主要区别在于这些功能使用的API设置。

<stdio.h>包含标准C库的文件API,<fileapi.h>是Win32 API。您还可以使用C ++ API(<iostream>)。

我发现无论你使用什么API,都应该明确地将文件位置设置为Local文件夹。

Platform::String^ localfolder = Windows::Storage::ApplicationData::Current->LocalFolder->Path;
Platform::String^ myFileName = Platform::String::Concat(localfolder, "\\myfile.txt");

需要注意的一点是Platform::String^在内部使用wchar_t,而不是char,因此您需要在指定文件名时要小心。

因此,请尝试查找一个以wchar_t*为文件名的API,并使用它来避免必须进行字符集转换。

例如:使用_wfsopen代替fopen