DirectoryInfo 类(总结)

来源:互联网 发布:淘宝api接口 编辑:程序博客网 时间:2024/06/05 22:33

公开用于创建、移动和枚举目录和子目录的实例方法。无法继承此类。

 

在接受路径作为输入字符串的成员中,路径必须是格式良好的,否则将引发异常。例如,如果路径是完全限定的但以空格开头,则路径在类的方法中不会被修剪。因此,路径的格式不是良好的,并将引发异常。同样,路径或路径的组合不能被完全限定两次。例如,“c:\temp c:\windows”在大多数情况下也将引发异常。在使用接受路径字符串的方法时,请确保路径是格式良好的。

在接受路径的成员中,路径可以是指文件或仅是目录。指定路径也可以是相对路径或者服务器和共享名称的统一命名约定 (UNC) 路径。例如,以下都是可接受的路径:

  • C# 中的“c:\\MyDir\\MyFile.txt”或 Visual Basic 中的“c:\MyDir\MyFile.txt”。

  • C# 中的“c:\\MyDir”或 Visual Basic 中的“c:\MyDir”。

  • C# 中的“MyDir\\MySubdir”或 Visual Basic 中的“MyDir\MySubDir”。

  • C# 中的“\\\\MyServer\\MyShare”或 Visual Basic 中的“\\MyServer\MyShare”。

 用法:DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");

我定义了下面这样的一个方法:

public void LoadPhotos(string path)
        {
            //Note:这里的path为字符串,格式如"D:\Nat\Projects\Bsmart.BDT.Nat.TrainingPlan.Test\Bsmart.BDT.Nat.UITest\bin\Debug\"
            //参数前面要加一个字符 '@' 。
            DirectoryInfo picFolder = new DirectoryInfo(path);//文件夹
            FileInfo[] fileInfo = picFolder.GetFiles();//获取当前目录的文件列表
            _myImage = new Bitmap[fileInfo.Length];//分配空间。(这里默认分配最大的空间)

            //加载图片
            _totalPicCount = 0;
            foreach (FileInfo NextFile in fileInfo)
            {
                if (NextFile.Extension == ".jpg" || NextFile.Extension == ".JPG")
                {
                    //_myImage[_totalPicCount] = new Bitmap(NextFile.Name);//文件名
                    _myImage[_totalPicCount] = new Bitmap(NextFile.FullName);//文件完整目录(这里要使用完整目录,因为图片的文件目录不确定)
                    _totalPicCount++;
                }
            }

            //显示图片
            if (_totalPicCount > 0)
            {
                this.pictureBox1.Image = (Image)_myImage[0];//显示第一张图片
                _curPicIndex = 0;
            }
        }

1、我在一个工程里添加了一个用户控件,然后在它的类里面加入了这个方法,并使用类的构造函数来传递路径参数。最后封装。

2、我又创建了一个窗口应用程序,并调用干刚才封装好的控件。使用如下:

this.picBoxBar = new PhotoBrowser(@"D:\Nat\pic\");// OK

this.picBoxBar = new PhotoBrowser("D:\Nat\pic\");//ERROR 无法识别的转义序列

3、不明白的是如果直接在程序中调用类的方法,也传入如上第二的参数,结果却是OK的。

为什么做为类的参数时要在前面加入@,而作为方法的参数时不需要。

 

 

原创粉丝点击