Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说DirectoryInfo 类(总结),希望能够帮助你!!!。
公开用于创建、移动和枚举目录和子目录的实例方法。无法继承此类。
在接受路径作为输入字符串的成员中,路径必须是格式良好的,否则将引发异常。例如,如果路径是完全限定的但以空格开头,则路径在类的方法中不会被修剪。因此,路径的格式不是良好的,并将引发异常。同样,路径或路径的组合不能被完全限定两次。例如,“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的。
为什么做为类的参数时要在前面加入@,而作为方法的参数时不需要。
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章