虚拟主机当前目录下有aaa和bbb两个文件夹。怎样删除aaa文件夹里十小时前生成的所有文件和文件夹,同时删除bbb文件夹里十小时前生成的所有文件(各种后缀)?
我不是程序员,基础很差,希望能给出完整语句(得到当前时间、当前目录及绝对路径等)。先谢谢了!

解决方案 »

  1.   

    DiectoryInfo 可获取文件夹的创建时间,根据这个来删除
      

  2.   

    System.IO.FileInfo file = new System.IO.FileInfo("path");
          if(file.CreationTime)
    判断这个时间 来 file.Delete();
    1.Timespan 来 判断 可以做2个时间的 相加减。也可以给       file.CreationTime.AddHours(10) 然后 比较大小。
      

  3.   


                System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("path");
                if (dir.CreationTime.AddHours(10) > DateTime.Now)
                {
                    //删除
                    dir.Delete(true);
                }
                else
                { 
                    //不删除
                }
                  
      

  4.   

    只要能解决,加到一百分也无所谓。我是不是写的不对,为什么好几天前的文件也没删除:    private  void createFolder()
        {
            if (!Directory.Exists(uploadpath))
            {
                Directory.CreateDirectory(uploadpath);//在aaa文件夹内新建了这个子文件夹,随后我想删除aaa文件夹内十小时前生成的旧文件和文件夹。下面是您给的代码:
                System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(uploadpath+"../");
                if (dir.CreationTime.AddHours(10) > DateTime.Now)
                {
                    //删除
                    dir.Delete(true);
                }
                else
                { 
                    //不删除
                }
            }
        }把路径写成System.IO.DirectoryInfo("./aaa/");同样也不能删除。
    错在哪里呢?
      

  5.   

    当前目录的aaa文件夹内新建的文件和子文件夹都是用户生成的,每次删除的文件和文件夹名称不会一样,只是以新建的时间来区分删除可以吗?
      

  6.   

     private  void createFolder()
        {
            if (!Directory.Exists(uploadpath))
            {
                Directory.CreateDirectory(uploadpath);//在aaa文件夹内新建了这个子文件夹,随后我想删除aaa文件夹内十小时前生成的旧文件和文件夹。下面是您给的代码:
                System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(uploadpath+"../");
                if (dir.CreationTime.AddHours(10) > DateTime.Now)
                {
                    //删除
                    dir.Delete(true);
                }
                else
                { 
                    //不删除
                }
            }
    、uploadpath 你是用一下调试,看路径是不是正确。
        }
      

  7.   

    问题是我不会调试,更不懂遍历啊~~
    应该也不是uploadpath路径的问题,我用System.IO.DirectoryInfo(uploadpath+"../");和System.IO.DirectoryInfo("./aaa/");和System.IO.DirectoryInfo("/123/aaa/");都试过了,一点反应也没有。具体目录就是在根目录的123文件夹下用1.aspx执行新建和删除Directory.CreateDirectory(uploadpath);新建没问题,删除的路径我都试过了。大侠直接给出代码可以吗?
    我不是程序员,基础很差,希望能给出完整语句。先谢谢了:
    1、在你们自己项目里新建一个子文件夹123,在这里新建1.aspx和1.aspx.cs
    2、在protected void Page_Load(object sender, EventArgs e)里删除/123/aaa/文件夹里十小时前生成的所有文件和文件夹,同时删除/123/bbb/文件夹里十小时前生成的所有文件(各种后缀)。这个语句该怎么写?
      

  8.   

    详细目录结构补充:
    1.aspx和1.aspx.cs所在文件夹为/123/(打开或刷新1.aspx执行删除即可)
    要删除/123/aaa/文件夹里十小时前生成的所有文件和文件夹
    同时删除/123/bbb/文件夹里十小时前生成的所有文件(各种后缀)。
      

  9.   

     dir.Delete(true);这个就是 删除所有了。 文件夹和文件
      

  10.   

    貌似路径也不对!
    要删除虚拟主机/123/aaa/文件夹里十小时前生成的所有文件和文件夹,这个路径该怎么写?上面给我的代码似乎都是要删除C:\WINDOWS\system32里的内容!
      

  11.   

    早就试过物理路径,总出错!不过现在知道是权限问题,已经可以删除了!但是会把aaa文件夹全部删除,而不是删除这个文件夹内十小时前的文件和子文件夹。那个时间判断语句也不管用!
      

  12.   

    删除aaa文件夹内十小时前的文件和子文件夹,而不是把aaa文件夹全部删除。这样做很难吗?
      

  13.   

    自己能解决就不来这问了。我不是程序员,不太会net,这个遍历的语句很难写、很复杂吗?
      

  14.   

    高手回来了
    你的代码条件语句不管用,而且是直接删除全部aaa文件夹。可不可以只删除aaa文件夹里十小时前的文件和子文件夹啊?
      

  15.   

    System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"path");
                FileInfo[] fiArr = dir.GetFiles();//获取目录下文件
                foreach (FileInfo file in fiArr)
                {
                    if (file.CreationTime.AddHours(10) < DateTime.Now)
                    {
                        //删除     
                        file.Delete();
                    }
                    else
                    {
                        //不删除     
                    } 
                }
                DirectoryInfo[] diArr = dir.GetDirectories();//获取子文件夹
                foreach (DirectoryInfo Sdir in diArr)
                {
                    if (Sdir.CreationTime.AddHours(10) < DateTime.Now)
                    {
                        //删除     
                        Sdir.Delete(true);
                    }
                    else
                    {
                        //不删除     
                    }
                }
      

  16.   

    真是难者不会,会者不难啊!半个月来发了两贴,终于遇到高人了!
    非常感谢!这就把分值加到100!这个帖子我也加到100,你顶一下也结给你吧:http://bbs.csdn.net/topics/390257224