質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

1回答

3950閲覧

.NETCoreでディレクトリのアクセス権限の確認がしたい。

nonki03

総合スコア11

.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2020/05/21 16:21

とあるデータの1日の集計結果データをPDFにまとめて出力するために、
そのファイルを出力する先を設定する画面があります。
設定画面で保存先パスをDBに保持する前に、そのフォルダが書き込み可能であるかを確認したいのですが、手法がわからなくて困っています。
フレームワークは.NET Core 3.1で、色々調べてみてもうまく出てこず、

・FileIOPermission
参考先に書かれているようなことを試してみてもうまく情報を掴めない。(使い方が間違ってる?)

・DirectoryInfo.GetAccessControl
→そもそも.NET Core に非対応。

・テストファイルを作ってみて、作れない場合のExceptionで書き込み権限無しエラーとする。
→ごり押しすぎなのでは? ほかに手法ありそう。

といった状態になっています。

何か方法は無いでしょうか…
環境情報等、必要そうな情報はご質問頂き次第随時追記致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2020/05/21 16:52

参照先としているリンクは解決しているわけでは無さそうで、ついてる回答は別の質問や資料へのリンクになってますが、何を試したんでしょうか? 「うまく情報を掴めない」という表現もよくわからず、具体的にどういう情報が取得可能だと思ってやってみて、どんな情報が取得されたんでしょうか?
Zuishin

2020/05/21 22:51

別に難しいことを考えなくても、テストファイルじゃなく本番のファイルを作って、例外が発生したらユーザーに表示でいいと思いますが。
Zuishin

2020/05/21 22:56

というのも、設定時に書き込みできたからと言って実行時にもできるとは限らないからです。 例外を発生させて強制終了ではなく、そこで設定を変更して継続できるよう作るのがいいんじゃないかと思います。
退会済みユーザー

退会済みユーザー

2020/05/22 02:52

そもそも何で Core なのですか? Windows OS のファイルシステムにアクセスして何かしようとするなら Core ではなくて .NET Framework ベースにすればよいと思うのですが・・・
nonki03

2020/05/22 08:11

仕事のため、レスが遅くてすみません。 >gentaroさん 具体的に試したこととしては、 FileIOPermissionAccessのRead, Write, Append, NoAccess, PathDiscovery, AllAccessを FileIOPermissionにそれぞれバラバラにセットして、 1つずつ.Demand()して落ちるかどうかを試しました。 これによって、現ユーザーでの読み取り書き込み権限があるかを見れると思っていたのですが、 .Demand()でExceptionが発生することは無く、全て素通りする感じでした。 >Zuishinさん 「設定時に書き込みできたからと言って実行時にもできるとは限らないから」というのはごもっともです。 ただ、保存先のフォルダパスを指定した段階で「書き込み権限が無いから保存できないよ」と出せればよいかなと考えて実装しようとしている次第です。 実際のファイル出力時は失敗しても続きの処理を続行するよう組まれています。 >SurferOnWwwさん .NET Coreの選定理由は今後Linux環境で動かす可能性があるからです。
Zuishin

2020/05/25 22:17

結局、この回答でできたのかできなかったのか、どっちなんでしょう?
Zuishin

2020/05/29 23:42

なぜ無視?
Zuishin

2020/05/30 12:47

毎日ログインしているのになぜ無視?
guest

回答1

0

NuGet Gallery | System.IO.FileSystem.AccessControl 4.7.0

これが .NET Core に対応しています。

確認したらちゃんと返事をしましょう。質問しっぱなしとはどういう了見でしょうか?

投稿2020/05/22 08:20

編集2020/06/05 09:05
Zuishin

総合スコア28669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nonki03

2020/05/22 17:12

おぉ…Nugetにあったのですね… 古めのJavaアプリばかり触っていてNugetには疎かったので、 そういったライブラリはもう無いもんなんだと半場諦めて テストファイルを作る処理を実装してみたところですが、 使えるかどうか試してみようと思います。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問