私はfolderBrowseDialogを使用して、プログラムがいくつかのファイルを保存する場所をユーザーが選択できるようにしています。アプリケーションが操作できないパスをユーザーが選択できるという問題があります。たとえば、「c:\」(プログラムは管理者ではなくユーザーによって起動されます)
USERが操作できないパスを選択しようとすると、パスを「マイドキュメント」に変更するように提案するプログラムを見たことがありますが、その方法がわかりませんでした。savefiledialogではなくfolderBrowseDialogを使用していることに注意してください。
そのため、FileIOPermissionを使用して、警告を表示するのではないかと思いました。しかし、何らかの理由でそれは機能しません。これは私が書いた簡単なコードですが、例外がスローされることはありません。 MSDNのFileIOPremission
using namespace System::Security::Permissions;
FileIOPermission^ f2 = gcnew FileIOPermission( FileIOPermissionAccess::Write,"C:\\");
try {
f2->Demand();
}
catch (System::Security::SecurityException^ s){
MessageBox::Show(s->Message);
}