zoukankan      html  css  js  c++  java
  • 文件操作概览

    趁有空,对.net的文件操作类做了一个大概的总结.

    首先引用IO namespace:

    using System.IO;


    创建目录:

            /// <summary>
            
    /// Directory.CreateDirectory参数解释:
            
    /// path
            
    /// 要创建的目录。
            
    /// directorySecurity
            
    /// 要应用于此目录的访问控制。
            
    /// 
            
    /// 如果文件夹存在则不创建,可用Directory.Exists判断文件夹是否存在.
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button1_Click(object sender, EventArgs e)
            {
                
    try
                {
                    DirectoryInfo di 
    = Directory.CreateDirectory(@"C:\FileOperator");
                    
    string message = string.Format("Create \"{0}\" success!", di.FullName);
                    MessageBox.Show(message, 
    "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
    catch
                {
                    MessageBox.Show(
    "Create folder Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


    创建文件:

            /// <summary>
            
    /// File.Create参数解释:
            
    /// path
            
    /// 类型:System..::.String
            
    /// 文件名。
            
    /// bufferSize
            
    /// 类型:System..::.Int32
            
    /// 用于读取和写入文件的已放入缓冲区的字节数。
            
    /// options
            
    /// 类型:System.IO..::.FileOptions
            
    /// FileOptions 值之一,它描述如何创建或覆盖该文件。
            
    /// fileSecurity
            
    /// 类型:System.Security.AccessControl..::.FileSecurity
            
    /// FileSecurity 值之一,它确定文件的访问控制和审核安全性。

            
    /// 创建文件会覆盖原来同名文件,所以创建前最好File.Exists判断文件是否存在.
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button2_Click(object sender, EventArgs e)
            {
                
    try
                {
                    FileStream fs 
    = File.Create(@"C:\FileOperator\File1.txt");

                    
    string message = string.Format("Create \"{0}\" success!", fs.Name);
                    MessageBox.Show(message, 
    "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    fs.Dispose();
                    fs.Close();
                }
                
    catch
                {
                    MessageBox.Show(
    "Create file Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


    打开和写入文件:

            /// <summary>
            
    /// File.Open参数解释:
            
    /// path
            
    /// 类型:System..::.String
            
    /// 要打开的文件。
            
    /// mode
            
    /// 类型:System.IO..::.FileMode
            
    /// FileMode 值,用于指定在文件不存在时是否创建该文件,并确定是保留还是覆盖现有文件的内容。
            
    /// access
            
    /// 类型:System.IO..::.FileAccess
            
    /// FileAccess 值,指定可以对文件执行的操作。
            
    /// share
            
    /// 类型:System.IO..::.FileShare
            
    /// FileShare 值,它指定其他线程所具有的对该文件的访问类型。
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button3_Click(object sender, EventArgs e)
            {
                
    try
                {
                    FileStream fs 
    = File.Open(@"C:\FileOperator\File1.txt", FileMode.Append);
                    
    byte[] byteArray = new byte[] { (byte)'K', (byte)'E', (byte)'N' };
                    fs.Write(byteArray, 
    0, byteArray.Length);

                    
    string message = string.Format("Write \"KEN\" to File success!", fs.Name);
                    MessageBox.Show(message, 
    "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    fs.Dispose();
                    fs.Close();
                }
                
    catch
                {
                    MessageBox.Show(
    "Open & Write file Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


    文件复制:

            /// <summary>
            
    /// File.Copy参数解释:
            
    /// sourceFileName: 源文件
            
    /// destFileName: 目标文件
            
    /// overwrite: 如果目标已存在,是否覆盖目标文件
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button4_Click(object sender, EventArgs e)
            {
                
    try
                {
                    DirectoryInfo di 
    = Directory.CreateDirectory(@"C:\FileOperator\Temp");
                    File.Copy(
    @"C:\FileOperator\File1.txt"@"C:\FileOperator\Temp\File1.txt"true);
                    
    string message = string.Format("Copy File to \"{0}\" success!"@"C:\FileOperator\Temp\File1.txt");
                    MessageBox.Show(message, 
    "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
    catch
                {
                    MessageBox.Show(
    "Copy file Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


    文件删除:

            /// <summary>
            
    /// File.Delete参数解释:
            
    /// path: 文件完整路径;
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button5_Click(object sender, EventArgs e)
            {
                
    try
                {
                    File.Delete(
    @"C:\FileOperator\Temp\File1.txt");
                    
    string message = "Delete File success!";
                    MessageBox.Show(message, 
    "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
    catch
                {
                    MessageBox.Show(
    "Delete file Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


    移动和重命名:

            /// <summary>
            
    /// File.Move参数解释:
            
    /// sourceFileName: 源文件
            
    /// destFileName: 目标文件
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button6_Click(object sender, EventArgs e)
            {
                
    try
                {
                    
    //move
                    File.Move(@"C:\FileOperator\File1.txt"@"C:\FileOperator\Temp\File1.txt");
                    
    //rename
                    File.Move(@"C:\FileOperator\Temp\File1.txt"@"C:\FileOperator\Temp\File2.txt");

                    
    string message = "Move & Rename file success!";
                    MessageBox.Show(message, 
    "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
    catch
                {
                    MessageBox.Show(
    "Move & Rename file Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                
    //文件夹的Move和Rename同文件一样,也使用File.Move,传入文件路径即可.
            }


    设置文件属性:

            /// <summary>
            
    /// File.SetAttributes参数解释:
            
    /// path: 文件完整路径;
            
    /// fileAttributes: FileAttributes值,指定文件属性.
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button7_Click(object sender, EventArgs e)
            {
                
    try
                {
                    File.SetAttributes(
    @"C:\FileOperator\Temp\File2.txt", FileAttributes.ReadOnly | FileAttributes.Hidden);

                    
    string message = "Set file Readonly & Hidden success!";
                    MessageBox.Show(message, 
    "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
    catch
                {
                    MessageBox.Show(
    "Set file attributes Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


    检查文件和目录是否存在:

            /// <summary>
            
    /// 参数解释:
            
    /// path:文件路径
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button8_Click(object sender, EventArgs e)
            {
                
    try
                {
                    
    if (Directory.Exists(@"C:\FileOperator\Temp"))
                        MessageBox.Show(
    string.Format("\"{0}\"Exits!"@"C:\FileOperator\Temp\"), "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    
    if (File.Exists(@"C:\FileOperator\Temp\File2.txt"))
                        MessageBox.Show(
    string.Format("\"{0}\"Exits!"@"C:\FileOperator\Temp\File2.txt"), "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
    catch
                {
                    MessageBox.Show(
    "Check Folder & File Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


    设置目录属性:

            /// <summary>
            
    /// 不用解释
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button9_Click(object sender, EventArgs e)
            {
                
    try
                {
                    DirectoryInfo di 
    = new DirectoryInfo(@"C:\FileOperator\Temp");
                    di.Attributes 
    = FileAttributes.ReadOnly | FileAttributes.Hidden;

                    
    string message = "Set folder attributes success!";
                    MessageBox.Show(message, 
    "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
    catch
                {
                    MessageBox.Show(
    "Set folder attributes Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


    获取子目录:
     

            /// <summary>
            
    /// 懒得解释
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button10_Click(object sender, EventArgs e)
            {
                
    try
                {
                    
    string[] children = Directory.GetDirectories(@"C:\FileOperator");
                    
    string message = string.Empty;
                    
    if (children.Length > 0)
                        message 
    = string.Format("{0} folders in \"{1}\"", children.Length, @"C:\FileOperator");
                    
    else
                        message 
    = string.Format("No folder in \"{0}\""@"C:\FileOperator");

                    MessageBox.Show(message, 
    "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
    catch
                {
                    MessageBox.Show(
    "Get child folder Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


    获取目录下所有文件:

            /// <summary>
            
    /// 呵呵
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button11_Click(object sender, EventArgs e)
            {
                
    try
                {
                    
    string[] files = Directory.GetFiles(@"C:\FileOperator");
                    
    string message = string.Empty;
                    
    if (files.Length > 0)
                        message 
    = string.Format("{0} files in \"{1}\"", files.Length, @"C:\FileOperator");
                    
    else
                        message 
    = string.Format("No file in \"{0}\""@"C:\FileOperator");

                    MessageBox.Show(message, 
    "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
    catch
                {
                    MessageBox.Show(
    "Get files Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


    删除目录:

            /// <summary>
            
    /// 参数解释:
            
    /// path:
            
    /// recursive:是否递归删除目录下所有目录及文件.
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            private void button12_Click(object sender, EventArgs e)
            {
                
    try
                {
                    
    //正常文件才可以删除
                    DirectoryInfo di = new DirectoryInfo(@"C:\FileOperator\Temp");
                    di.Attributes 
    = FileAttributes.Normal;
                    File.SetAttributes(
    @"C:\FileOperator\Temp\File2.txt", FileAttributes.Normal);
                    
    //delete
                    Directory.Delete(@"C:\FileOperator"true);
                    MessageBox.Show(
    "Delete folder success!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
    catch
                {
                    MessageBox.Show(
    "Delete folder Error!""系统消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

    另外,.Net对txt文件提供了更友好的操作封装,具体请查看MSDN,path参数可以用绝对路径,也可以使用相对路径,个人推荐使用绝对路径.

    全部操作源代码,请点击 源代码 下载.

  • 相关阅读:
    Maven对Springboot项目配置文件、依赖分离打包
    记录一次SpringBoot中@Value注入失败
    springboot读取配置文件getResourceAsStream的用法
    hive的行列转换2
    hive的行列转换
    idea中java编译Unreachable statement编译错误
    Java 基础( 数组)
    linux ln命令详解
    Mac下打开进入/usr/local等隐藏目录
    Go map字典排序
  • 原文地址:https://www.cnblogs.com/KenBlove/p/1300426.html
Copyright © 2011-2022 走看看