私はfolderBrowseDialogを使用して、プログラムがいくつかのファイルを保存する場所を選択できるようにします。ユーザーがアプリケーションが操作できないパスを選択できるという問題があります。たとえば、「c:\」(プログラムはユーザーではないユーザーによって起動されます)C++ cliここでファイルを作成できるかどうかを確認します。FolderBrowseDialog
私は自分のパスを変更することを提案するプログラムを見ましたユーザーが操作できないパスを選択しようとするたびに「マイドキュメント」に移動しますが、どのように操作するのか把握できませんでした。 私はsaveFiledialogではなくfolderBrowseDialogを使用していることに注意してください。
だから、FileIOPermissionを使用して警告が表示されることがあります。一部のreasoneでは動作しません。ここに私が書いたクイックコードがありますが、例外はスローされません。 FileIOPremission on MSDN
using namespace System::Security::Permissions;
FileIOPermission^ f2 = gcnew FileIOPermission(FileIOPermissionAccess::Write,"C:\\");
try {
f2->Demand();
}
catch (System::Security::SecurityException^ s){
MessageBox::Show(s->Message);
}
あなたの答えはそれほど役に立ちません。私はちょうど画面撮影を保存する簡単なプログラムを作成しようとしています。私はこのフォルダに書き込むかどうかを確認する方法を尋ねました。 –
ええと、私はそれに答えました。 IOExceptionをキャッチします。 DirectoryInfo :: GetAccessControl()を使用すると、任意に複雑にすることができます。それは多くのコードを追加しますが、あなたが正面を調べることができない他の理由のために例外をキャッチする必要からあなたを止めることはありません。その答えがなぜ役立ったのかを理解するためには、そのコードを記述する必要があります。 –