2016-04-22 18 views
0

私はC#でUWPアプリケーションを構築しようとしています。私のアプリはC++で書かれたネイティブライブラリを持っています。アプリケーションがApplicationData.LocalFolderのファイルを読み込もうとすると、CreateFile2 APIはERROR_NOT_SUPPORTED_IN_APPCONTAINERを返します。このAPIに指定されたパスにファイルが存在します。
これは私のアプリでの操作のシーケンスです。WindowsUWP CreateFIle2がApplicationData.LocalFolderのファイルを読み取れません

  1. 起動アプリ。アプリケーションは、ファイル&は、ステップ1が正常に動作している


このファイル内のデータを読み取ろうとする

  • 後でユーザ入力アプリに基づいていくつかのデータを書き込み、作成されます。アプリケーションは、&ファイルを作成することができます。アプリが後でアクセスしようとするときにのみ、このエラーが発生します。
    私はこれは私がアプリで見る実際のパスである


    Windows.Storage.ApplicationData.Current.LocalFolder.Path

    を使用してApplicationData.LocalFolderへのパスを取得する:

    C:\ Users \ユーザーXXXXX \のAppData \ローカル\パッケージ\ ac7a11e4-c1d6-4d37-b9eb-a4b0dc8f67b8_yyjvd81p022em \ LocalState \ TEMP.TXT


    私のコードは以下の通りです:

    CREATEFILE2_EXTENDED_PARAMETERS ms_param = {0}; 
        ms_param.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS); 
        ms_param.dwFileAttributes = FILE_ATTRIBUTE_READONLY; 
        ms_param.dwFileFlags = FILE_FLAG_NO_BUFFERING; 
        ms_param.dwSecurityQosFlags = SECURITY_DELEGATION; 
        ms_param.lpSecurityAttributes = NULL; 
        ms_param.hTemplateFile = NULL; 
    
        g_hfile = CreateFile2(filename, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, OPEN_EXISTING, &ms_param); 
        if (g_hfile == INVALID_HANDLE_VALUE) 
        { 
          return GetLastError(); 
        } 
    


    私はdwCreationDispositionパラメータの両方OPEN_EXISTING & OPEN_ALWAYSオプションでCreateFile2を試してみましたが、私はどちらの場合にも同じエラーを参照してください。

    私はCreateFile2と似た問題がありました。しかし、それは私のアプリの問題でした&私はその問題を修正しました。今回は、ファイルがLocalFolder内で使用可能ですが、まだエラーが発生します。

  • 答えて

    関連する問題