- PR -

TreeViewにディレクトリとファイルを一覧で表示する件

1
投稿者投稿内容
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-10-13 11:59
お世話になります。

TreeViewにディレクトリとファイルを一覧で表示することで教えてください。
サンプルなど参考に下記のようにしました。とりあえずうまくいっているようですが、
下記の問題の解決方法がわかりません。
1.ツリービューに一覧が表示されるがポストバックしないと前のデータが残ったままとなり消し方がわかりません。ツリー内を削除したい
2.C:\など表示させようとすると「サーバーエラー:パス 'C:\Documents and Settings' へのアクセスが拒否されました。 」となる。セキュリティ上無理なのかどうかは、わかりませんがこのエラーも回避する方法はありますでしょうか?このような個所をスキップできればいいです。「アクセスを許可するには、エクスプローラでファイルを右クリック....」と表示されますが、これは、実際困難だと思いますので...
ASP.NET C#

コード:

protected void FileSearch(string drive)
{
Queue qe = new Queue();
qe.Enqueue(drive);

TreeNode masterNode = new TreeNode(drive);
TreeView1.Nodes.Add(masterNode);

while (qe.Count > 0) {
string dr = (string)qe.Dequeue();

string[] dirs = Directory.GetDirectories(dr);
foreach (string st in dirs) {
qe.Enqueue(st);
TreeNode childNode = new TreeNode(st);
masterNode.ChildNodes.Add(childNode);
}

string[] files = Directory.GetFiles(dr);
foreach (string st in files) {
TreeNode childNode2 = new TreeNode(st);
masterNode.ChildNodes.Add(childNode2);
}
}
}



[ メッセージ編集済み 編集者: SL 編集日時 2008-10-13 12:01 ]
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-10-13 17:56
お世話になります。

1の「ツリー内を削除したい」といのは、下記でうまく行きました。

TreeView1.Nodes.Clear();
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-10-14 10:48
お世話になります。

自己レスです。

try〜catch を使えば、できそうです。ただ、ルートをとるとうまくQueue を使わないと反応しなくなるのがちょっと大変そうです。
1

スキルアップ/キャリアアップ(JOB@IT)