teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

例示を修正

2018/04/18 16:51

投稿

dodox86
dodox86

スコア9416

answer CHANGED
@@ -16,11 +16,11 @@
16
16
 
17
17
  ここで「Add Special Folder」を選択すると様々なフォルダーが指定できるようになるので、適時、サブフォルダーを追加して*.db ファイル等のデータファイルを配置します。
18
18
 
19
- ここで出てくる様々なフォルダーのPATHは[System.Environment.GetFolderPath](https://msdn.microsoft.com/ja-jp/library/system.environment.getfolderpath(v=vs.110).aspx)で取得できます。
19
+ ここで出てくる様々なフォルダーのPATHは [System.Environment.GetFolderPath](https://msdn.microsoft.com/ja-jp/library/system.environment.getfolderpath(v=vs.110).aspx) で取得できます。
20
20
  [特殊ディレクトリのパスを取得する](https://dobon.net/vb/dotnet/file/getfolderpath.html)
21
21
 
22
- 例えば「ユーザーのアプリケーション データ フォルダー(L)」を指定し、更にその下にTest01フォルダーを追加して、DATA.txtファイルを配置すると以下のPATHになります。
22
+ 例えば「ユーザーのアプリケーション データ フォルダー(L)」を指定し、更にその下にTest01フォルダーを追加して、DATA.txtファイルを配置すると以下のようなPATHになります。
23
- `C:\Users\user01\AppData\Roaming\Test01\DATA.txt`
23
+ `C:\Users\<ユーザー名>\AppData\Roaming\Test01\DATA.txt`
24
24
 
25
25
  このPATHは以下のようなコードで取得できます。質問者様の例で言えば、これで取得したPATHで、*.dbファイルへアクセスしよう、と言う訳です。
26
26
  ```C#

1

Visual Studio Installerを使用してフォルダーを指定した例を追記

2018/04/18 16:51

投稿

dodox86
dodox86

スコア9416

answer CHANGED
@@ -4,4 +4,38 @@
4
4
  以前に私が回答させていただいたものですが、こちらを参考になさってください。問題の原因は同じです。
5
5
  [Log4netのログの出力先について](https://teratail.com/questions/118803)
6
6
 
7
- ※Visual Studio Installerは使ったことが無いので分からないのですが、書き込み可能な別のフォルダーを指定することができるのではないでしょうか。(できなかったらすみません)
7
+ ※Visual Studio Installerは使ったことが無いので分からないのですが、書き込み可能な別のフォルダーを指定することができるのではないでしょうか。~~(できなかったらすみません)~~
8
+
9
+ ---
10
+ **追記しました:**(2018/04/19 01:48)
11
+
12
+ 質問者様の方で既に解決されているかもしれませんが、Visual Studio Installerを使い、書き込み可能なフォルダーとファイルを指定してみました。
13
+
14
+ Visual Studio Installerの「File System」ペインで「File System on Target Machine」ノードを右クリックすると、下図のようになります。
15
+ ![イメージ説明](2c373a8a6097520a3116831b08ce2763.png)
16
+
17
+ ここで「Add Special Folder」を選択すると様々なフォルダーが指定できるようになるので、適時、サブフォルダーを追加して*.db ファイル等のデータファイルを配置します。
18
+
19
+ ここで出てくる様々なフォルダーのPATHは[System.Environment.GetFolderPath](https://msdn.microsoft.com/ja-jp/library/system.environment.getfolderpath(v=vs.110).aspx)で取得できます。
20
+ [特殊ディレクトリのパスを取得する](https://dobon.net/vb/dotnet/file/getfolderpath.html)
21
+
22
+ 例えば「ユーザーのアプリケーション データ フォルダー(L)」を指定し、更にその下にTest01フォルダーを追加して、DATA.txtファイルを配置すると以下のPATHになります。
23
+ `C:\Users\user01\AppData\Roaming\Test01\DATA.txt`
24
+
25
+ このPATHは以下のようなコードで取得できます。質問者様の例で言えば、これで取得したPATHで、*.dbファイルへアクセスしよう、と言う訳です。
26
+ ```C#
27
+ string baseFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
28
+ string filePath = System.IO.Path.Combine(baseFolder, "Test01", "DATA.txt");
29
+
30
+ // 単なるファイルの存在確認
31
+ if (File.Exists(filePath))
32
+ {
33
+ Debug.WriteLine("File exists.");
34
+ }
35
+ else
36
+ {
37
+ Debug.WriteLine("File does not exist.");
38
+ }
39
+
40
+ ```
41
+ Windows10 + Visual Studio 2017 で確認しました。