在网站开发过程中,经常要涉及对文件的操作,因此要实现多文件的上传、文件的永久删除以及对文件的搜索、下载和查看等多方面的操作。
1,获取文件的大小
步骤:
(一):创建一个Windows窗体应用程序
(二):在该窗体中添加一个按钮,用来打开指定文件,取其大小。
(三):代码如下:
1 private void button1_Click(object sender, EventArgs e) 2 { 3 OpenFileDialog openFile = new OpenFileDialog();//创建打开文件对话对话框对象 4 if (openFile.ShowDialog() == DialogResult.OK)//判断是否选中文件 5 { 6 MessageBox.Show("文件长度:"+File.Open(openFile.FileName,FileMode.Open).Length.ToString()+"字节");//弹出消息对话框 7 } 8 }
(四):运行结果:
上一例子中,使用File类的Open方法打开指定的文件,然后使用FileStream类的Length属性获取文件的长度。
1,File类的Open方法用来打开指定路径上的FileStream,具有读/写访问权限。语法如下:
public static FileStream Open(string path,FileMode mode);
参数说明
path:要打开的文件
mode:FileMode枚举值之一,用于指定在文件不存在时是否创建该文件,并确定是保留还是覆盖现有的文件的内容。FileMode枚举值及说明如下
返回值:以指定模式打开的指定的路径上的FlieStream,具有读/写访问权限并且不共享。
枚举值 | 描述 |
CreateNew | 指定操作系统应创建新文件 |
Create | 指定操作系统应创建新文件。如果文件已存在,它将被覆盖。 |
Open | 指定操作系统应打开现有的文件。 |
OpenOrCreate | 指定操作系统应打开文件(如果文件已存在):否则,应创建新文件 |
Truncate | 指定操作系统应打开现有的文件。文件一旦被打开,就将被截断为零字节大小 |
Append | 打开现有文件并查找到文件尾。或创建新文件 |
2,FlieStream类的Length属性
FlieStream类的Length属性用来获取用字节表示的流长度。格式语法如下:
public override long Length { get; }
秘技心法:打开对话框使用OpenFileDialog控件来表示,它表示一个通用对话框,用户可以使用对话框来指定一个或多个要打开的文件的文件名。我们可以用
OpenFileDialog控件的ShowDialog方法显示“打开”对话框。
2,获取文件的拓展名
步骤:
(一):创建一个Windows窗体应用程序
(二):在该窗体中添加一个按钮,用来打开指定文件,取其拓展名。
(三):代码如下:
1 private void button1_Click(object sender, EventArgs e) 2 { 3 OpenFileDialog openFile = new OpenFileDialog();//创建打开文件对话框对象 4 if (openFile.ShowDialog() == DialogResult.OK)//判断是否选中文件 5 { 6 MessageBox.Show("文件的拓展名:" + openFile.FileName.Substring(openFile.FileName.LastIndexOf(".") + 1,openFile.FileName.Length-openFile.FileName.LastIndexOf(".")-1),"提示");//弹出消息对话框 7 } 8 }
(四):运行结果:
上一个例子中获取文件拓展名,主要是通过从文件名中截取相应的字符串来实现的,其中主要用到了string类的SubString方法。
SubString方法用来从指定的字符位置开始截取指定长度的字符串。其语法如下:
public string Substring(int startIndex, int length);
参数说明:
1,startIndex:子字符串的起始位置的索引。
2,length:要截取的字符数。
3,返回值:一个String文本字符串,表示截取的字符串。
秘技心法:”打开“对话框的返回值可以使用DialogResult枚举来获取,该枚举指定标识符以指示对话框的返回值。例如,要获取“打开”对话框的返回值是否为“确定”按钮,可以使用以下代码实现:
if (openFile.ShowDialog() == DialogResult.OK)
3,获取文件的最后一次修改时间
步骤:
(一):创建一个Windows窗体应用程序
(二):在该窗体中添加一个按钮,用来打开指定文件,取其创建时间。
(三):代码如下:
1 private void button1_Click(object sender, EventArgs e) 2 { 3 OpenFileDialog openFile = new OpenFileDialog();//创建打开文件对话框对象 4 if (openFile.ShowDialog() == DialogResult.OK)//判断是否选中文件 5 { 6 FileInfo info = new FileInfo(openFile.FileName);//创建FileInfo对象 7 8 MessageBox.Show("文件的创建日期:" +info.CreationTime.ToString() , "提示");//弹出消息对话框 9 } 10 }
(四):运行结果:
上一个例子中主要用到了FileInfo类的LastWriteTime属性,下面对其进行详解:
FileInfo类的LastWriteTime属性用来获取或设置上次写入当前文件的时间。其语法格式为:
public DateTime LastWriteTime { set; get; }
4,获取文件名中禁止使用的字符
在Windows操作系统中新建文件时,如果输入了非法字符,系统会提示错误,那么文件的名称究竟不允许哪些非法字符?详情如下:
步骤:
(一):创建一个Windows窗体应用程序
(二):在该窗体中添加一个按钮,用来打开指定文件,用来获取路径名中禁止使用的字符,添加一个RichTextBox控件,用来显示路径名中所有禁止使用的字符。
(三):代码如下:
1 private void button1_Click(object sender, EventArgs e) 2 { 3 foreach (char c in Path.GetInvalidFileNameChars())//得到不允许使用字符数组 4 { 5 richTextBox1.Text += c + "\t";//输出数组内容 6 } 7 }
(四):运行结果:
上一个例子中主要用到path类的GetInvalidFileNameChars方法,下面对其详解:
path类用来对包含文件目录或目录路径信息的String实例执行操作,其GetInvalidFileNameChars属性主要用来获取包含不允许在文件名使用的字符的数组。其格式语法如下:
public static char[] GetInvalidFileNameChars();
参数说明:
返回值:包含不允许在文件中使用的字符的数组。