Привет, я занимаюсь разработкой веб-клиентского приложения ftp. Я хочу получить каталоги файловой системы клиента и заполнить их в виде дерева. Я пробую этот код, но он выдаст каталоги системы (сервера), где работает мое приложение, что когда любой пользователь обращается к моему приложению через браузер, я хочу загрузить каталоги файловой системы пользователей.
это код, который я пробовал:
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;
}
Может ли кто-нибудь помочь мне, как правильно выполнить эту задачу.