public void FindAllFileAndDel(string path)
        {
            DirectoryInfo[] ChildDirectory;//子目录集
            FileInfo[] NewFileInfo;//当前所有文件
            DirectoryInfo FatherDirectory = new DirectoryInfo(path); //当前目录
            ChildDirectory = FatherDirectory.GetDirectories("*.*"); //得到子目录集
            NewFileInfo = FatherDirectory.GetFiles();//得到文件集,可以进行操作
            foreach (FileInfo fileinfo in FatherDirectory.GetFiles("*.*"))
            {
                //DateTime dt = Convert.ToDateTime("2007-12-31");
                DateTime dt = DateTime.Now.Date;                if(fileinfo.LastAccessTime.AddDays(90)<dt)//假如最后访问时间是90天之前则删除
                {
                    fileinfo.Delete();
                    delcount = delcount + 1;
                }
            }
            foreach (DirectoryInfo dirInfo in ChildDirectory)
            {
                FindAllFileAndDel(dirInfo.FullName);
            }
        }        private void button1_Click(object sender, EventArgs e)
        {
            FindAllFileAndDel(foldertextBox.Text);
            label2.Text = delcount.ToString();
        }
以上的代码如果遍历本机无力硬盘分区没有问题,但如果用来删除映射到本机的网络硬盘上的文件则无效,哪里出的问题呢?

解决方案 »

  1.   

    补充一点: folertextbox.text接收的是folderBrowserDialog控件取得的目录
      

  2.   

    映射的网络驱动器肯定有个驱动器的名称!
    直接在folderBrowserDialog控件中选择这个驱动器下要遍历的文件夹!应该可以的~~
      

  3.   

    我是这么指定的。我将网络上的某个目录映射为Z盘,然后直接在folderBrowserDialog控件中选择这个驱动器(z)。顺便问一句,只打开目录看了一下,那么目录里的文件最近访问时间是不是会发生变化?也许是这个问题造成的