根据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.h
和stdio.h
)之间有什么区别?它们在哪个位置上作用?
P / S:我正在使用WP运行时组件
答案 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
。