zoukankan      html  css  js  c++  java
  • C# — FileHandler

    先学会如何使用OpenFileDialog和SaveFileDialog控件浏览和选择文件、使用System.IO.File和System.IO.Directory的对象来操纵文件系统(文件和目录)。

    实际上OpenFileDialog控件只是让用户选择文件,而不是打开文件——故选中双击,退出对话框:

    selectFile.InitialDirectory = @"F:";        //设置初始目录
    selectFile.Title = "打开文件";
    selectFile.FileName = "";   //设置默认文件名

    创建文件过滤器(过滤器格式—Description:*.extension):

    selectFile.Filter = "所有文件 (*.*) | *.*|文本文件 (*.txt) | *.txt";
    selectFile.FilterIndex = 2;     //设置默认的过滤器,1为第一个

    最后得到对话框选择的文件名:

    if (selectFile.ShowDialog() == DialogResult.OK)  //根据用户是否确认选择,采取相应操作
        this.FilePath.Text = selectFile.FileName;
    else
        this.FilePath.Text = "";

    SaveFileDialog与OpenFileDialog类似:

    inputFile.InitialDirectory = @"F:";
    inputFile.Title = "保存文件";
    inputFile.FileName = "";
    inputFile.Filter = "文本文件 (*.txt) | *.txt|所有文件 (*.*) | *.*";
    if(inputFile.OverwritePrompt)
    {
        inputFile.OverwritePrompt = false;  //saveFileDialog才有的属性,默认为true,表示如果用户选择了已有文件,替换已有文件前让用户确认
        if(inputFile.ShowDialog() == DialogResult.OK)
        {
                FilePath.Text = inputFile.FileName;     //自动将绝对路径(完整路径)返回
        }
    } 

    在File类中,具体的文件操作有:创建、删除、移动、重命名文件和目录。

    复制:File.copy(源路径, 目标路径)、删除:File.Delete(文件路径)、移动或重命名:File.Move(源路径/源文件, 目标路径/重命名)。可用File.Exists(path)检测文件是否存在。

    通过File对象、FileAttributes对象获取文件属性

    通过File对象获取:创建时间GetCreationTime(path)、最后被访问时间GetLastAccessTime(path)、最后被修改时间GetLastWriteTime(path)。

    通过FileAttributes对象获取,然后通过与FileAttributes的每一种属性(如.Normal、.Hidden、.ReadOnly、.System、.Temporary、.Archive)相&,将结果Convert.ToBoolean转换成true、false,true则说明满足该属性,例如:

    FileAttributes fattr = File.GetAttributes(path);

    attr.Append("只读: " + Convert.ToBoolean(fattr & FileAttributes.ReadOnly) + " ");

    目录操作Directory类:创建、移动或重命名、删除:

    string path = @"F:shutao";
    Directory.CreateDirectory(path);
    DirectoryInfo dir = new DirectoryInfo(@"E:shutao");    //获得目录的信息
    FileInfo[] files = dir.GetFiles();  //通过Directory对象获得,目录下的文件列表(文件数组)
    //Directory.Move(path + @"2", path + "1" + @"2"); //Directory.Delete(path + "1", true); Directory.Delete(path);
    //获取文件名(包含路径)和文件路径(不含文件名,末尾也不带):都有两种方法,通过获得文件本身的属性和调用Path类的静态方法
    FileInfo file = new FileInfo(@"E:shutaoshutao.txt");
    MessageBox.Show(file.FullName);
    MessageBox.Show(file.DirectoryName);
    MessageBox.Show(Path.GetDirectoryName(file.FullName));

    工程的运行程序的路径(Debug路径):MessageBox.Show(System.AppDomain.CurrentDomain.BaseDirectory)。

    读写文本文件

    Write:

    1. 首先创建一个StreamWriter对象:StreamWriter writer= new StreamWriter(@"文件名")。选项:true追加,false创建(默认选项)。
    2. 写入数据有两种常用的:writer.Write("text1")、writer.WriteLine("text1")。
    3. 使用完毕一定要释放:(1):关闭文件writer.Close()、(2):确保文件对象被完全释放:writer.Dispose()。

    Read:

    使用StreamReader类,与使用StreamWriter很相似,关键区别在于文件不存在时,处理的方式不同:

    StreamWriter:当文件不存在时,新建一个文件——StreamReader:抛出异常。

    具体使用:

    1. 创建一个StreamReader对象:StreamReader reader = new StreamReader("F:/shutao.txt")。
    2. 读取数据有两种常用的方式:读取整个文件textBox1.Text = reader.ReadToEnd()、或者每次读取一行str = reader.ReadLine() + " "。
    3. 关闭与释放。
  • 相关阅读:
    linux 安装node.js 和npm
    laravel 记录
    apache-jmeter 使用记录
    将MD5值压缩成8位32进制生成8位长度的唯一英文数字组合字符串
    api接口开发跨域注意事项和设置
    阿里云服务器报 Liunx异常文件下载处理办法
    OpenGL ES 入门
    Spring AOP——Spring 中面向切面编程
    SpringIOC 二—— 容器 和 Bean的深入理解
    静态代理和动态代理
  • 原文地址:https://www.cnblogs.com/quanxi/p/6160095.html
Copyright © 2011-2022 走看看