Hi i am developing a webbased ftp client application i want to get client file system directories and populate them into a tree view i try this code but it will give directories of the system (server) where my application is running , i want that when any user accesss my application through a browser i want load users filesystem directories.
this is the code which i tried:
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;
}
Can any one help me how to perform this task correctly.
As said by others, your server-side code can’t read client’s file system.
Your best option is to write and sign a Java applet (afaik signed applets are allowed to access the file system) and embed the applet to the web page. ActiveX is also an option, but it’s limited to Internet Explorer.