在服務器A中會有一個網絡映射盤O:盤,當客戶在自已的電腦上運行Winform,要實現對A服務器裡的O:盤進行瀏覽。。
並可以下載文件
以上功能要怎麼實現?
13 个解决方案
#1
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
public partial class TreeViewDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//获取当前服务器上所有的磁盘分区
string[] driverList= Directory.GetLogicalDrives();
DriveInfo driverInfo = null;
for (int i = 0; i < 1; i++)//driverList.Length;
{
driverInfo = new DriveInfo(driverList[i]);
if (driverInfo.DriveType == DriveType.Fixed)
{
TreeNode node = new TreeNode(driverList[i]);
tvFileList.Nodes.Add(node);
AddNode(driverList[i],node);
}
}
}
}
private void AddNode(string path,TreeNode node)
{
DirectoryInfo info = new DirectoryInfo(path);
DirectoryInfo[] dirList=info.GetDirectories();//获取文件夹下所有的子文件夹,不包含子文件夹下的文件夹
//info.GetFiles();//获取文件夹下所有的文件,不包含子文件夹下的文件
for (int i = 0; i < dirList.Length; i++)
{
string name=dirList[i].Name;
if (name != "System Volume Information")
{
TreeNode subNode = new TreeNode(name);
node.ChildNodes.Add(subNode);
//继续递归调用本方法
AddNode(dirList[i].FullName,subNode);
}
}
}
}
#2
上面的是给别人演示的一个例子,虽然演示的时候是在Web下,但是完全可以改在WinForm下。
#3
System.IO.Directory.GetDirectories("O:\");
System.IO.Directory.GetFiles("O:\");
#4
請給一個winform的代碼嘛
#5
递归。
#6
public void FindAllFile(string path)
{
DirectoryInfo[] ChildDirectory;//子目录集
FileInfo[] NewFileInfo;//当前所有文件
DirectoryInfo FatherDirectory=new DirectoryInfo(path); //当前目录
ChildDirectory=FatherDirectory.GetDirectories("*.*"); //得到子目录集
NewFileInfo=FatherDirectory.GetFiles();//得到文件集,可以进行操作
foreach(DirectoryInfo dirInfo in ChildDirectory)
{
FindAllFile(dirInfo.FullName);
}
}
#7
public ArrayList al=new ArrayList();
public void GetAllDirList(string strBaseDir)
{
DirectoryInfo di=new DirectoryInfo(strBaseDir);
DirectoryInfo[] diA=di.GetDirectories();
for(int i=0;i<diA.Length;i++)
{
al.Add(diA[i].FullName);
//diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中
GetAllDirList(diA[i].FullName);
//注意:递归了。逻辑思维正常的人应该能反应过来
}
}
#8
顶
#9
給一個完整的代碼
#10
他们的解决办法都比较好了,我也来学习下吧!
#11
学习了!
#12
代码是根据2楼的改的,如果O盘下好多文件,运行起来好慢,死了几次
/// <summary>
/// 获取盘符
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnGetDisk_Click(object sender, EventArgs e)
{
//获取当前服务器上所有的磁盘分区
//string[] driverList = Directory.GetLogicalDrives();
//DriveInfo driverInfo = null;
//for (int i = 0; i < 1; i++)//driverList.Length;
//{
// driverInfo = new DriveInfo(driverList[i]);
// if (driverInfo.DriveType == DriveType.Fixed)
// {
// TreeNode node = new TreeNode(driverList[i]);
// //tvFileList.Nodes.Add(node);
// treeView1.Nodes.Add(node);
// AddNode(driverList[i], node);
// }
//}
//path的值用folderBrowerdialog获取也行
string path = @"f:\";
TreeNode node = new TreeNode(path);
treeView1.Nodes.Add(node);
AddNode(path, node);
}
private void AddNode(string path, TreeNode node)
{
DirectoryInfo info = new DirectoryInfo(path);
DirectoryInfo[] dirList = info.GetDirectories();//获取文件夹下所有的子文件夹,不包含子文件夹下的文件夹
//info.GetFiles();//获取文件夹下所有的文件,不包含子文件夹下的文件
for (int i = 0; i < dirList.Length; i++)
{
string name = dirList[i].Name;
TreeNode subNode = new TreeNode(name);
node.Nodes.Add(subNode);
//node.ChildNodes.Add(subNode);
//继续递归调用本方法
AddNode(dirList[i].FullName, subNode);
}
}
/// <summary>
/// 获取盘符
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnGetDisk_Click(object sender, EventArgs e)
{
//获取当前服务器上所有的磁盘分区
//string[] driverList = Directory.GetLogicalDrives();
//DriveInfo driverInfo = null;
//for (int i = 0; i < 1; i++)//driverList.Length;
//{
// driverInfo = new DriveInfo(driverList[i]);
// if (driverInfo.DriveType == DriveType.Fixed)
// {
// TreeNode node = new TreeNode(driverList[i]);
// //tvFileList.Nodes.Add(node);
// treeView1.Nodes.Add(node);
// AddNode(driverList[i], node);
// }
//}
//path的值用folderBrowerdialog获取也行
string path = @"f:\";
TreeNode node = new TreeNode(path);
treeView1.Nodes.Add(node);
AddNode(path, node);
}
private void AddNode(string path, TreeNode node)
{
DirectoryInfo info = new DirectoryInfo(path);
DirectoryInfo[] dirList = info.GetDirectories();//获取文件夹下所有的子文件夹,不包含子文件夹下的文件夹
//info.GetFiles();//获取文件夹下所有的文件,不包含子文件夹下的文件
for (int i = 0; i < dirList.Length; i++)
{
string name = dirList[i].Name;
TreeNode subNode = new TreeNode(name);
node.Nodes.Add(subNode);
//node.ChildNodes.Add(subNode);
//继续递归调用本方法
AddNode(dirList[i].FullName, subNode);
}
}
#13
顶。。。。。。。。。。。。
#1
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
public partial class TreeViewDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//获取当前服务器上所有的磁盘分区
string[] driverList= Directory.GetLogicalDrives();
DriveInfo driverInfo = null;
for (int i = 0; i < 1; i++)//driverList.Length;
{
driverInfo = new DriveInfo(driverList[i]);
if (driverInfo.DriveType == DriveType.Fixed)
{
TreeNode node = new TreeNode(driverList[i]);
tvFileList.Nodes.Add(node);
AddNode(driverList[i],node);
}
}
}
}
private void AddNode(string path,TreeNode node)
{
DirectoryInfo info = new DirectoryInfo(path);
DirectoryInfo[] dirList=info.GetDirectories();//获取文件夹下所有的子文件夹,不包含子文件夹下的文件夹
//info.GetFiles();//获取文件夹下所有的文件,不包含子文件夹下的文件
for (int i = 0; i < dirList.Length; i++)
{
string name=dirList[i].Name;
if (name != "System Volume Information")
{
TreeNode subNode = new TreeNode(name);
node.ChildNodes.Add(subNode);
//继续递归调用本方法
AddNode(dirList[i].FullName,subNode);
}
}
}
}
#2
上面的是给别人演示的一个例子,虽然演示的时候是在Web下,但是完全可以改在WinForm下。
#3
System.IO.Directory.GetDirectories("O:\");
System.IO.Directory.GetFiles("O:\");
#4
請給一個winform的代碼嘛
#5
递归。
#6
public void FindAllFile(string path)
{
DirectoryInfo[] ChildDirectory;//子目录集
FileInfo[] NewFileInfo;//当前所有文件
DirectoryInfo FatherDirectory=new DirectoryInfo(path); //当前目录
ChildDirectory=FatherDirectory.GetDirectories("*.*"); //得到子目录集
NewFileInfo=FatherDirectory.GetFiles();//得到文件集,可以进行操作
foreach(DirectoryInfo dirInfo in ChildDirectory)
{
FindAllFile(dirInfo.FullName);
}
}
#7
public ArrayList al=new ArrayList();
public void GetAllDirList(string strBaseDir)
{
DirectoryInfo di=new DirectoryInfo(strBaseDir);
DirectoryInfo[] diA=di.GetDirectories();
for(int i=0;i<diA.Length;i++)
{
al.Add(diA[i].FullName);
//diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中
GetAllDirList(diA[i].FullName);
//注意:递归了。逻辑思维正常的人应该能反应过来
}
}
#8
顶
#9
給一個完整的代碼
#10
他们的解决办法都比较好了,我也来学习下吧!
#11
学习了!
#12
代码是根据2楼的改的,如果O盘下好多文件,运行起来好慢,死了几次
/// <summary>
/// 获取盘符
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnGetDisk_Click(object sender, EventArgs e)
{
//获取当前服务器上所有的磁盘分区
//string[] driverList = Directory.GetLogicalDrives();
//DriveInfo driverInfo = null;
//for (int i = 0; i < 1; i++)//driverList.Length;
//{
// driverInfo = new DriveInfo(driverList[i]);
// if (driverInfo.DriveType == DriveType.Fixed)
// {
// TreeNode node = new TreeNode(driverList[i]);
// //tvFileList.Nodes.Add(node);
// treeView1.Nodes.Add(node);
// AddNode(driverList[i], node);
// }
//}
//path的值用folderBrowerdialog获取也行
string path = @"f:\";
TreeNode node = new TreeNode(path);
treeView1.Nodes.Add(node);
AddNode(path, node);
}
private void AddNode(string path, TreeNode node)
{
DirectoryInfo info = new DirectoryInfo(path);
DirectoryInfo[] dirList = info.GetDirectories();//获取文件夹下所有的子文件夹,不包含子文件夹下的文件夹
//info.GetFiles();//获取文件夹下所有的文件,不包含子文件夹下的文件
for (int i = 0; i < dirList.Length; i++)
{
string name = dirList[i].Name;
TreeNode subNode = new TreeNode(name);
node.Nodes.Add(subNode);
//node.ChildNodes.Add(subNode);
//继续递归调用本方法
AddNode(dirList[i].FullName, subNode);
}
}
/// <summary>
/// 获取盘符
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnGetDisk_Click(object sender, EventArgs e)
{
//获取当前服务器上所有的磁盘分区
//string[] driverList = Directory.GetLogicalDrives();
//DriveInfo driverInfo = null;
//for (int i = 0; i < 1; i++)//driverList.Length;
//{
// driverInfo = new DriveInfo(driverList[i]);
// if (driverInfo.DriveType == DriveType.Fixed)
// {
// TreeNode node = new TreeNode(driverList[i]);
// //tvFileList.Nodes.Add(node);
// treeView1.Nodes.Add(node);
// AddNode(driverList[i], node);
// }
//}
//path的值用folderBrowerdialog获取也行
string path = @"f:\";
TreeNode node = new TreeNode(path);
treeView1.Nodes.Add(node);
AddNode(path, node);
}
private void AddNode(string path, TreeNode node)
{
DirectoryInfo info = new DirectoryInfo(path);
DirectoryInfo[] dirList = info.GetDirectories();//获取文件夹下所有的子文件夹,不包含子文件夹下的文件夹
//info.GetFiles();//获取文件夹下所有的文件,不包含子文件夹下的文件
for (int i = 0; i < dirList.Length; i++)
{
string name = dirList[i].Name;
TreeNode subNode = new TreeNode(name);
node.Nodes.Add(subNode);
//node.ChildNodes.Add(subNode);
//继续递归调用本方法
AddNode(dirList[i].FullName, subNode);
}
}
#13
顶。。。。。。。。。。。。