WIN32 - 在 Windows CE 中读取 MyDocuments 中的文本文件返回空白
WIN32 - Reading Text File In MyDocuments In Windows CE Returning Blank
我正在尝试编写一个简单的程序来读取 Windows CE OS 中名为“1.txt”(仅包含 "abc")的文本文件 OS 使用 Windows Visual Studio 2008 中的 Mobile 5.0 SDK、WIN32 和 C。我已将此文本文件存储在我的文档文件夹中。
我的程序出现错误 "Cannot open text file",这意味着我无法打开要读取的文件。我怀疑我没有根据 WinCE 文件结构为我的文件设置正确的路径,但是(正如你从我的注释代码中看到的那样)我已经尝试了 Windows CE 的各种路径表达式都无济于事。我尝试了 GetModuleFileName() 函数,它返回文件路径 "My Documents.txt"。这是我的代码:
#include <winbase.h>
#include <windows.h>
#include <windowsx.h>
#include <winuser.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "resource.h"
#include "ScanCAPI.h"
#include <time.h>
#include <tchar.h>
#pragma comment(lib, "Kernel32.lib")
wchar_t text10[256];
FILE * fPtr;
.
.
switch(uMsg)
{
case WM_INITDIALOG:
fPtr = _wfopen ("My Documents\1.txt" , "rt");
//fPtr = _wfopen ("\My Documents\1.txt" , "rt");
//fPtr = _wfopen ("\My Documents.txt" , "rt");
//fPtr = _wfopen ("My Documents.txt" , "rt");
//fPtr = _wfopen ("My Device.txt" , "rt");
if (fPtr != NULL)
{
if ( fgetws (text10 , 100 , fPtr) != NULL )
wprintf("%s",fgetws(text10,255,fPtr));
//fwscanf(fPtr,"%s", &text10);
//fgetws (text10 , 255 , fPtr);
//fputws ( text10, stdout );
//fwscanf(fPtr,"%s", &text10);
MessageBox(0, text10, TEXT("text10"), MB_OK); //returning blank message box
} else {
MessageBox(0, TEXT("Cannot read file."), TEXT("File Read Error"), MB_OK);
}
if(fPtr == NULL)
{
//Open File failure
fclose(fPtr);
MessageBox(0, TEXT("Cannot open text file."), TEXT("File Open Error"), MB_OK);
PostQuitMessage(0);
}
.
.
这是我的 Resource.h 头文件的内容:
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
//
#define IDD_DIALOG_SSCAN 101
#define IDI_ICON1 102
#define IDC_STATIC1 995
#define IDC_EDIT1 1010
#define IDC_BUTTON1 1012
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 105
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1014
#define _APS_NEXT_SYMED_VALUE 106
#endif
#endif
如何打开我的 "My Documents.txt" 文本文件进行阅读?
看来 SHGetSpecialFolderPath 在 Windows CE 上确实可用。
调用它以获取“我的文档”文件夹的完整路径。
或者fPtr = _wfopen(L"path_to\1.txt", L"rt");
或 fPtr = fopen("path_to\1.txt", "rt");
为我工作 Windows 10.
尝试使用 fopen
而不是 _wfopen
,后者是 fopen
的宽字符版本。
我正在尝试编写一个简单的程序来读取 Windows CE OS 中名为“1.txt”(仅包含 "abc")的文本文件 OS 使用 Windows Visual Studio 2008 中的 Mobile 5.0 SDK、WIN32 和 C。我已将此文本文件存储在我的文档文件夹中。
我的程序出现错误 "Cannot open text file",这意味着我无法打开要读取的文件。我怀疑我没有根据 WinCE 文件结构为我的文件设置正确的路径,但是(正如你从我的注释代码中看到的那样)我已经尝试了 Windows CE 的各种路径表达式都无济于事。我尝试了 GetModuleFileName() 函数,它返回文件路径 "My Documents.txt"。这是我的代码:
#include <winbase.h>
#include <windows.h>
#include <windowsx.h>
#include <winuser.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "resource.h"
#include "ScanCAPI.h"
#include <time.h>
#include <tchar.h>
#pragma comment(lib, "Kernel32.lib")
wchar_t text10[256];
FILE * fPtr;
.
.
switch(uMsg)
{
case WM_INITDIALOG:
fPtr = _wfopen ("My Documents\1.txt" , "rt");
//fPtr = _wfopen ("\My Documents\1.txt" , "rt");
//fPtr = _wfopen ("\My Documents.txt" , "rt");
//fPtr = _wfopen ("My Documents.txt" , "rt");
//fPtr = _wfopen ("My Device.txt" , "rt");
if (fPtr != NULL)
{
if ( fgetws (text10 , 100 , fPtr) != NULL )
wprintf("%s",fgetws(text10,255,fPtr));
//fwscanf(fPtr,"%s", &text10);
//fgetws (text10 , 255 , fPtr);
//fputws ( text10, stdout );
//fwscanf(fPtr,"%s", &text10);
MessageBox(0, text10, TEXT("text10"), MB_OK); //returning blank message box
} else {
MessageBox(0, TEXT("Cannot read file."), TEXT("File Read Error"), MB_OK);
}
if(fPtr == NULL)
{
//Open File failure
fclose(fPtr);
MessageBox(0, TEXT("Cannot open text file."), TEXT("File Open Error"), MB_OK);
PostQuitMessage(0);
}
.
.
这是我的 Resource.h 头文件的内容:
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
//
#define IDD_DIALOG_SSCAN 101
#define IDI_ICON1 102
#define IDC_STATIC1 995
#define IDC_EDIT1 1010
#define IDC_BUTTON1 1012
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 105
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1014
#define _APS_NEXT_SYMED_VALUE 106
#endif
#endif
如何打开我的 "My Documents.txt" 文本文件进行阅读?
看来 SHGetSpecialFolderPath 在 Windows CE 上确实可用。
调用它以获取“我的文档”文件夹的完整路径。
或者fPtr = _wfopen(L"path_to\1.txt", L"rt");
或 fPtr = fopen("path_to\1.txt", "rt");
为我工作 Windows 10.
尝试使用 fopen
而不是 _wfopen
,后者是 fopen
的宽字符版本。