DirectoryInfo imagesfile = new DirectoryInfo(Server.MapPath("/images/FtpImg"));
            DirectoryInfo[] info = imagesfile.GetDirectories();
            FileInfo[] fileinfo;
            DirectoryInfo[] Carinfo;
            DirectoryInfo[] picinfo;
            string  oldpath="";
            Che51.Model.Gallery objGallery = new Gallery();
            for (int i = 0; i < info.Length; i++)
            {
                if (info[i].Name == "0")
                {
                    Carinfo = info[i].GetDirectories();
                    picinfo = Carinfo[0].GetDirectories();
                    oldpath = Carinfo[0].FullName;
                    for (int j = 0; j < picinfo.Length; j++)
                    {
                        if (picinfo[j].Name == "1")
                        {
                            fileinfo = picinfo[j].GetFiles();
                            for (int k = 0; k < fileinfo.Length; k++)
                            {
                                objGallery.CarId = Che51.BLL.CarsBLL.GetCarsByModel(Carinfo[0].Name).Car_Id;
                                objGallery.CarBrandId = Che51.BLL.CarsBLL.GetCarsByModel(Carinfo[0].Name).BrandId;
                                objGallery.CarSerialId = Che51.BLL.CarsBLL.GetCarsByModel(Carinfo[0].Name).SerialID;
                                objGallery.BrandId = 0;
                                objGallery.AddTime = DateTime.Now;
                                objGallery.PicPath = "/images/FtpImg/" + Carinfo[0].Name + "/" + "1/" + fileinfo[k].Name;
                                objGallery.PicType = 1;
                                System.Drawing.Image imgPic = null;
                                if (fileinfo[k].Extension == ".bmp" || fileinfo[k].Extension == ".gif" || fileinfo[k].Extension == ".jpg" || fileinfo[k].Extension == ".png")
                                {
                                    using (imgPic = System.Drawing.Image.FromFile(fileinfo[k].FullName))
                                    {
                                        imgPic = Che51.Utility.ImageHelper.DrawTextWater(imgPic, "无优车网www.51che.com", "黑体", float.Parse("9"), false, Che51.Utility.WaterPosition.RigthBottom, float.Parse("0.8"));
                                        imgPic.Dispose();
                                    }                                    Che51.Utility.ImageHelper.SaveImage(imgPic, "/images/FtpImg/0/" + Carinfo[0].Name + "/" + "1/" + fileinfo[k].Name, ".jpg");
                                }
                            }
                        }
                    }
                    Directory.Move(Carinfo[0].FullName, Carinfo[0].FullName + "1");
                }
请教 我 Directory.Move(Carinfo[0].FullName, Carinfo[0].FullName + "1"); 这里报错:对路径访问被拒绝
权限我已经设置好了 如果把 Directory.Move(Carinfo[0].FullName, Carinfo[0].FullName + "1");
放在第一句是可以运行的.

解决方案 »

  1.   

    如果某个文件夹有文件正在被读取,那么你在改名的时候就会引发异常,另外,你这种模式有点怪异啊,WEB文件夹一般是不应该允许改名的,业务有问题
      

  2.   

    把Directory.Move()方法放在这段函数的最前面是可以改名的\
    但是放在DirectoryInfo[] info = imagesfile.GetDirectories(); 后就会说访问被拒绝,应该是打开了该文件夹却没有关闭的愿意.但是找不到一个方法能关闭.请大家帮帮忙
      

  3.   

    看了你的代码,最有可能的就是
    objGallery.CarId = Che51.BLL.CarsBLL.GetCarsByModel(Carinfo[0].Name).Car_Id; 
    objGallery.CarBrandId = Che51.BLL.CarsBLL.GetCarsByModel(Carinfo[0].Name).BrandId; 
    objGallery.CarSerialId = Che51.BLL.CarsBLL.GetCarsByModel(Carinfo[0].Name).SerialID; 
    应该是objGallery也涉及到了对目录Carinfo[0]的一些操作,但是没有及时释放相关的资源,
    你把GetCarsByModel的代码贴上来看一下。对objGallery和Che51.BLL.CarsBLL.GetCarsByModel这些你仔细检查一下。
    另外,应该没有什么用,但是在检查我上面说的那个对象和相关方法之前,你还还是试一下在Directory.Move(Carinfo[0].FullName, Carinfo[0].FullName + "1"); 代码的前面加上一句Thread.Sleep(1000)先试一下,碰下运气。
      

  4.   

    objGallery.CarId = Che51.BLL.CarsBLL.GetCarsByModel(Carinfo[0].Name).Car_Id; 
    Che51.BLL.CarsBLL.GetCarsByModel方法只是需要一个参数提交到数据库而已 并没有对文件夹进行操作