http://community.csdn.net/Expert/topic/5531/5531052.xml?temp=.6948206
______________________________________________________________________
上次那个问题绑定
1,System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("c:\\Inetpub")
这个可以.但是我想直接绑定c:盘不行.不知道该怎么写了?
2,还有,我另外用datagrid绑定了文件,代码如下:
    Dim dirInfo As New DirectoryInfo(f:\aaa)
        mydatagrid.DataSource = dirInfo.GetFiles("*.aspx")
        mydatagrid.DataBind()
  可以像放在数据里面那样搜索吗?
谢谢!

解决方案 »

  1.   

    能说得具体点吗?权限我想应该设置够了吧!错误提示是:未能找到路径“F:\gingkgo”的一部分。
    "gingkgo"这个我不知道是什么东西!
      

  2.   

    1,System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("c:\\Inetpub")
    这个可以.但是我想直接绑定c:盘不行.不知道该怎么写了?这个应该是出于 安全问题 不允许asp.net用户 进行这样的操作吧
    可以试试 身份模拟.
    http://www.cnblogs.com/chegan/archive/2005/11/20/280793.html
      

  3.   

    1.应该是没有权限
    用 身份模拟先试一下: <identity impersonate="true" userName="administrator" password="123131" />
      

  4.   

    能说得具体点吗?权限我想应该设置够了吧!错误提示是:未能找到路径“F:\gingkgo”的一部分。
    "gingkgo"这个我不知道是什么东西!你在遍历c盘 怎么会跑出 f盘的东西?
      

  5.   

    gingkgo
    这应该是目录。会是会是系统目录或隐藏目录?2.搜索可以像搜索文件的方式
    你已经写出来了。支持*?
      

  6.   

    我没搞C盘.我遍历的是F盘!gingkgo这个目录绝对没有!代码如下:
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
           
            If Not IsPostBack Then
                Dim dir As System.IO.DirectoryInfo = New System.IO.DirectoryInfo("F:\")
                binddir(dir, TreeView1.Nodes)
                       End If
           
        End Sub
    -------
        Sub binddir(ByVal dir As DirectoryInfo, ByVal nodes As TreeNodeCollection)
            Dim node As TreeNode = New TreeNode
            node.Text = dir.Name
            node.Value = dir.FullName
            nodes.Add(node)
            Dim dirs As DirectoryInfo() = dir.GetDirectories()
            For Each d As DirectoryInfo In dirs
                binddir(d, node.ChildNodes)
            Next
        End Sub
      

  7.   

    晕.说了是f盘了.我加了<identity impersonate="true" userName="administrator" password="123131" />
    ,同样的错误提示
      

  8.   

    运行cmd dir f:\gingkgo* /a
      

  9.   

    刚刚发现在确实有gingkgo这个文件.不能删除!像是病毒
      

  10.   

    //可以 通过datatable来查询 DirectoryInfo dirInfo = new DirectoryInfo("f:\aaa");
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("Name", typeof(string));
            int i = 0;
            foreach(FileInfo file in dirInfo.GetFiles("*.aspx"))
            {
                i++;
                dt1.Rows.Add(new object[] { i, file.Name });
            }
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            mydatagrid.DataSource = ds;
            mydatagrid.DataBind();//搜索的时候 用下面的代码 然后将行读取添加到新的 dt 绑定
            //string key = "test";
           // DataRow[] drows = ds.Tables[0].Select(" Name like '%" + key +"%'");
      

  11.   

    我换了个盘可以了,唉.太粗心了!
    -----------------------------
    hertcloud(·£孙子兵法£·) 
     DataRow[] drows = ds.Tables[0].Select(" Name like '%" + key +"%'")
    重新绑定就可以了吧!但如果我这里有3页的话,如果我点第2页的时候点树上面的节点重新绑定的datagrid的时候会报错,在第一页的时候才没有错!辛苦大家帮我看看代码,看看该怎么改:
    Imports System.Web.UI.WebControls
    Imports System.IO
    Imports System.Data
    Imports System.Data.SqlClient
    Partial Class _Default
        Inherits System.Web.UI.Page
        Dim path As String
        Dim extension As String#Region " Web 窗体设计器生成的代码 "    '该调用是 Web 窗体设计器所必需的。
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()    End Sub
        '注意: 以下占位符声明是 Web 窗体设计器所必需的。
        '不要删除或移动它。
        Private designerPlaceholderDeclaration As System.Object    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
            '不要使用代码编辑器修改它。
            InitializeComponent()
        End Sub#End Region
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
            path = "f:\\swedaoa\images\"
            extension = "*.*"
            If Not IsPostBack Then
                Dim dir As System.IO.DirectoryInfo = New System.IO.DirectoryInfo("F:\")
                binddir(dir, TreeView1.Nodes)
                TreeView1.ExpandDepth = 1
                bindgrid(path, extension)
            End If
           
        End Sub
        Sub binddir(ByVal dir As DirectoryInfo, ByVal nodes As TreeNodeCollection)
            Dim node As TreeNode = New TreeNode
            node.Text = dir.Name
            node.Value = dir.FullName
            nodes.Add(node)
            Dim dirs As DirectoryInfo() = dir.GetDirectories()
            For Each d As DirectoryInfo In dirs
                binddir(d, node.ChildNodes)
            Next
        End Sub
        Sub MyDataGrid_Page(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs) Handles mydatagrid.PageIndexChanged
            mydatagrid.CurrentPageIndex = e.NewPageIndex
            bindgrid(path, extension)
        End Sub
        Sub bindgrid(ByVal path As String, ByVal type As String)
            Dim dirInfo As New DirectoryInfo(path)
            mydatagrid.DataSource = dirInfo.GetFiles(type)
            mydatagrid.DataBind()
        End Sub
        Sub node_chang(ByVal sender As Object, ByVal e As EventArgs)
            Dim nodeid As String = TreeView1.SelectedNode.Value
            path = ""
            path = nodeid.ToString
            bindgrid(path, extension)
        End Sub
        Sub searchbt_click(ByVal sender As Object, ByVal e As EventArgs)
            Dim name As String = "*" & filename.Text & "*"
            Dim type As String = ".*" & filetype.Text & "*"
            Dim fullname As String
            fullname = name & type
            bindgrid(path, fullname)
        End Sub
    End Class
    --------------------------------------------
    唉.估计用winfrom就简单多了!