質問編集履歴

2

初めての質問で、質問文が杜撰でしたので、丁寧に指摘いただいた方々に伝わるように改良してみました。

2018/12/31 07:33

投稿

estcube
estcube

スコア10

test CHANGED
File without changes
test CHANGED
@@ -1,40 +1,50 @@
1
- 現在Visual C# 勉強中のものです。
1
+ 現在 Visual C# 勉強中のものです。
2
-
3
- 急いでいます。
2
+
4
-
5
- Visual C# で 相対パス以下のフォルダ、テキストファイルを treeView にエクスプローラのように表示し、その後ファイルを追加、削除できるようにしたいと思っています。
6
-
7
-
8
-
9
- treeViewを使ってデータ保存をする事は出来ました
3
+ Visual C#で、TreeViewを用いたメモ帳作成しています。
10
-
11
- treeNodeを作るごとにデータを保存する仕組みです。
4
+
12
-
13
- 「親ノードを作る、親ノードを保存する。」
5
+
14
-
6
+
15
- 「ノードを増やしていく、選択場所にノードを保存
7
+ 参考にしているメモ帳は Mac メモです。
8
+
16
-
9
+ NewProject Project でディレクトリを作ります。
10
+
11
+ File でファイルを作ります。
12
+
13
+
14
+
15
+ ディレクトリもファイルも、作る際に、ノードを増やしてからそのまま保存という風にしたいので、以下のメソッドを作りました。
16
+
17
+
18
+
17
- 「ファイルを作る、選択場所にファイル保存す
19
+ 現在出来ていところはディレクトリ保存と、ファイル保存す。
18
-
19
-
20
-
20
+
21
+
22
+
21
- までは出来ましたが、ファイル開くだけなく、treeView開く(+-ボタンのほうではなく、Form展開時にさっき作っていたもが残ってい状態)の処理が全くわからない、再度、フォームを開いたら最初からの状態にます。
23
+ カレントディレクトリ string型 作っているのでstring WorkSpace 使って、Form展開時に、相対パス下にあデータを呼び出し、二次元配列で適切場所に配置し、メモを開いて編集。みことをしたいと思っています。
22
-
23
-
24
-
24
+
25
+
26
+
25
- 保存したデータ生きていません。
27
+ です、理屈は大体わかるのですが、やり方がわかりません。
28
+
26
-
29
+ テキストファイルのデータなら、StreamReader とかを使うのですが、
27
-
28
-
30
+
29
- なので、配列を使うか、或いはdriveinfoforeach文を使って表示させのか正し方法りません
31
+ TreeViewTreeNode に 自動的に Add したりすためにはどううコードを描くの良いのでしょうか。
32
+
33
+
34
+
30
-
35
+ 以下のコードは保存の際に使うメソッドです。
36
+
31
-
37
+ コンテキストメニューには、
38
+
32
-
39
+ New Project //相対パス直下のセレクトできない場所に作るディレクトリ
40
+
33
- 相対パス以下のフォルダー内のデータをエクスプローラのように自動取得する方法を教えくださ
41
+ Project //エクスプローラのように増やしていけるディレクトリ
34
-
35
-
36
-
42
+
37
- ※保存、展開時にダアログボックスは使用しません。
43
+ File //txtファ
44
+
45
+
46
+
47
+ の3つがあり、Make して Save するという流れで、そのまま保存できるようにしました。
38
48
 
39
49
 
40
50
 
@@ -42,7 +52,7 @@
42
52
 
43
53
  ```C#
44
54
 
45
- int pnum = 0; //無名projectの一時判別用
55
+ int pnum = 0; //無名projectの一時判別用
46
56
 
47
57
  int fnum = 0; //無名fileの一時判別用
48
58
 

1

ご指摘がありましたので、保存に関して自分が作ったコードを載せます。

2018/12/31 07:33

投稿

estcube
estcube

スコア10

test CHANGED
File without changes
test CHANGED
@@ -35,3 +35,209 @@
35
35
 
36
36
 
37
37
  ※保存、展開時にダイアログボックスは使用しません。
38
+
39
+
40
+
41
+
42
+
43
+ ```C#
44
+
45
+ int pnum = 0; //無名projectの一時判別用
46
+
47
+ int fnum = 0; //無名fileの一時判別用
48
+
49
+ string CurrentDirectory = System.IO.Directory.GetCurrentDirectory();
50
+
51
+ TreeNode ftn;
52
+
53
+
54
+
55
+ void MakeNewProject()
56
+
57
+ {
58
+
59
+ TreeNode tn = new TreeNode();
60
+
61
+ if (tb.Text != "")
62
+
63
+ {
64
+
65
+ tn.Text = tb.Text;
66
+
67
+ }
68
+
69
+ else
70
+
71
+ {
72
+
73
+ pnum += 1;
74
+
75
+ tn.Text = "new project( " + pnum.ToString() + " )";
76
+
77
+ }
78
+
79
+ tv.Nodes.Add(tn);
80
+
81
+ ftn = tn;
82
+
83
+ }
84
+
85
+
86
+
87
+ void SaveNewProject()
88
+
89
+ {
90
+
91
+ TreeNode tn = ftn;
92
+
93
+ string ProjectName = tn.Text;
94
+
95
+ string WorkSpace = CurrentDirectory + "../../../../memo/";
96
+
97
+ System.IO.DirectoryInfo di = System.IO.Directory.CreateDirectory(WorkSpace + ProjectName);
98
+
99
+ }
100
+
101
+
102
+
103
+ void MakeProject()
104
+
105
+ {
106
+
107
+ TreeNode tn = new TreeNode();
108
+
109
+ if (tb.Text != "")
110
+
111
+ {
112
+
113
+ tn.Text = tb.Text;
114
+
115
+ }
116
+
117
+ else
118
+
119
+ {
120
+
121
+ pnum += 1;
122
+
123
+ tn.Text = "new project( " + pnum.ToString() + " )";
124
+
125
+ }
126
+
127
+ tv.SelectedNode.Nodes.Add(tn);
128
+
129
+ ftn = tn;
130
+
131
+ }
132
+
133
+
134
+
135
+ void SaveProject()
136
+
137
+ {
138
+
139
+ TreeNode tn = ftn;
140
+
141
+ string ProjectName = tn.Text;
142
+
143
+ string WorkSpace = CurrentDirectory + "../../../../memo/";
144
+
145
+ tv.PathSeparator = "\";
146
+
147
+ System.IO.DirectoryInfo di = System.IO.Directory.CreateDirectory(WorkSpace + tv.SelectedNode.FullPath + "\" + ProjectName);
148
+
149
+ }
150
+
151
+
152
+
153
+ void MakeFile()
154
+
155
+ {
156
+
157
+ TreeNode tn = new TreeNode();
158
+
159
+ if(tb.Text != "")
160
+
161
+ {
162
+
163
+ tn.Text = tb.Text;
164
+
165
+ }
166
+
167
+ else
168
+
169
+ {
170
+
171
+ fnum += 1;
172
+
173
+ tn.Text = "new document( " + fnum.ToString() + " )";
174
+
175
+ }
176
+
177
+ tv.SelectedNode.Nodes.Add(tn);
178
+
179
+ }
180
+
181
+
182
+
183
+ void SaveFIle()
184
+
185
+ {
186
+
187
+ TreeNode tn = ftn;
188
+
189
+ string FileName = tn.Text;
190
+
191
+ string WorkSpace = CurrentDirectory + "../../../../memo/";
192
+
193
+ if(tv.SelectedNode != null)
194
+
195
+ {
196
+
197
+ tv.PathSeparator = "\";
198
+
199
+ string FilePath = WorkSpace + tv.SelectedNode.FullPath + "\" + FileName + ".txt";
200
+
201
+ using (System.IO.FileStream hStream = System.IO.File.Create(FilePath))
202
+
203
+ {
204
+
205
+ if (hStream != null)
206
+
207
+ {
208
+
209
+ hStream.Close();
210
+
211
+ }
212
+
213
+ }
214
+
215
+
216
+
217
+ System.IO.StreamWriter sw = new System.IO.StreamWriter(
218
+
219
+ FilePath,
220
+
221
+ false,
222
+
223
+ System.Text.Encoding.GetEncoding("shift_jis")
224
+
225
+ );
226
+
227
+ sw.Write(rtb.Text);
228
+
229
+ sw.Close();
230
+
231
+ }
232
+
233
+ else
234
+
235
+ {
236
+
237
+
238
+
239
+ }
240
+
241
+ }
242
+
243
+ ```