2017-08-19 3 views
0

私はDAC変換アプリを持っています。最初の起動時に、EXEの1つをlocalappdataフォルダにコピーして起動します。このEXEは、このフォルダにコピーされますパッケージ化されていないアプリの仮想化されたappdata

C:\Users\user\AppData\Local\Packages\MyApp_z4vxg0xscex6e\LocalCache\Local\MyApp 

このEXEがAPPXアプリとして実行されていないが、通常のWin32デスクトップアプリケーションとして実行されていることを意味する、それが正常に起動し、GetCurrentPackageIdは失敗します。

問題は、その内部に自分のEXEへのパスを取得できないことです。 GetModuleFileName戻り、この:このパスの

C:\Users\user\AppData\Local\MyApp\myexe.exe 

GetFileAttributesは-1を返します。 GetCurrentDirectoryは同じフォルダを返します。

Windows Desktop Bridgeプラットフォームのバグですか?実行中のEXEがあるフォルダへのパスを取得する方法はありますか?

P.S. Windows 10 Version 1703(ビルド15063.483)。

答えて

0

実行中のEXEが存在するフォルダへのパスを取得する方法はありますか?あなたはあなただけの何をしたいその後、上記descriedようmyexe.exeをローカルフォルダにコピーされている場合は

は、ローカルフォルダのパスを取得することです。このためにはlocal folderを得ることができ、その後、次のようにUWPにパスプロパティを取得:このパスの

StorageFolder^ storageFolder = ApplicationData::Current->LocalFolder; 
String^path = storageFolder->Path; 

GetFileAttributesを返す-1

UWPのアプリは、すべてのファイルにアクセスする権限がありませんデバイス上にあります。デフォルトでは、アプリケーションはアプリケーションインストールディレクトリやアプリケーションデータの場所など、特定のファイルシステムの場所にアクセスできます。詳細はをご覧ください。

C:\Users\user\AppData\Local\MyApp\myexe.exeによって直接GetFileAttributesにアクセスできないことがあります。詳細はSkip the pathを参照してください。

+0

私はUWPアプリケーションから 'GetFileAttributes'を呼び出しません。私は完全なアクセス許可を持ってアプリから呼び出す。 –

関連する問題