こんにちは私はWebベースのFTPクライアントアプリケーションを開発しています。私はクライアントファイルシステムディレクトリを取得し、それらをツリービューに取り込みたいのですが、私のアプリケーションが実行されているシステム(サーバー)は、私は任意のユーザーがブラウザを介して私のアプリケーションにアクセスするとき、私はユーザーのファイルシステムのディレクトリをロードしたい。treeview asp.netのクライアントファイルシステムディレクトリを取得する方法C#
これは私が試したコードです:
private void fillTree()
{
DirectoryInfo directory;
string sCurPath = "";
// clear out the old values
TreeView2.Nodes.Clear();
// loop through the drive letters and find the available drives.
foreach (char c in driveLetters)
{
sCurPath = c + ":\\";
try
{
// get the directory informaiton for this path.
directory = new DirectoryInfo(sCurPath);
// if the retrieved directory information points to a valid
// directory or drive in this case, add it to the root of the
// treeView.
if (directory.Exists == true)
{
TreeNode newNode = new TreeNode(directory.FullName);
TreeView2.Nodes.Add(newNode); // add the new node to the root level.
getSubDirs(newNode); // scan for any sub folders on this drive.
}
}
catch (Exception doh)
{
lblStatus.Text = doh.Message;
}
}
}
private void getSubDirs(TreeNode parent)
{
DirectoryInfo directory;
try
{
// if we have not scanned this folder before
if (parent.ChildNodes.Count == 0)
{
directory = new DirectoryInfo(parent.ValuePath);
foreach (DirectoryInfo dir in directory.GetDirectories())
{
TreeNode newNode = new TreeNode(dir.Name);
parent.ChildNodes.Add(newNode);
}
}
// now that we have the children of the parent, see if they
// have any child members that need to be scanned. Scanning
// the first level of sub folders insures that you properly
// see the '+' or '-' expanding controls on each node that represents
// a sub folder with it's own children.
foreach (TreeNode node in parent.ChildNodes)
{
// if we have not scanned this node before.
if (node.ChildNodes.Count == 0)
{
// get the folder information for the specified path.
directory = new DirectoryInfo(node.ValuePath);
// check this folder for any possible sub-folders
foreach (DirectoryInfo dir in directory.GetDirectories())
{
// make a new TreeNode and add it to the treeView.
TreeNode newNode = new TreeNode(dir.Name);
node.ChildNodes.Add(newNode);
}
}
}
}
catch (Exception doh)
{
lblStatus.Text = doh.Message;
// Console.WriteLine(doh.Message);
}
}
private string fixPath(TreeNode node)
{
string sRet = "";
try
{
sRet = node.ValuePath;
int index = sRet.IndexOf("\\\\");
if (index > 1)
{
sRet = node.ValuePath.Remove(index, 1);
}
}
catch (Exception doh)
{
Console.WriteLine(doh.Message);
}
return sRet;
}
いずれかが正しく、このタスクを実行する方法を手伝ってくれる。
私は自分のアプリケーションでユーザーディレクトリをどのように表示しますか?私はそれがサーバー上にアップロードするために1つを選択するユーザーシステムのすべてのフォルダを表示したい –
そのために、あなたはあらかじめ構築された無料の商用製品がたくさんあります。 http://www.codeproject.com/KB/aspnet/FlashUpload.aspxまたはhttp://asp.net-tutorials.com/controls/file-upload-control/ OR http:// mattbersethをご覧ください。 com/blog/2008/07/aspnet_file_upload_with_realti_1.htmlまたはhttp://krystalware.com/slickuploadまたはhttp://www.uploadify.com/demos/ –