C#文件操作基础之File类和FileInfo类

156 篇文章 3 订阅
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

public class MaintainFile
{
    private int IntModify()//主要判断用户要操作的类型
    {
        int intType = 0;
        //string s = "\\\\\\";
        Console.WriteLine("请指定操作种类:[1]新建 [2]删除 [3]复制 [4]移动");//对应FileInfo类的相关实例方法

        while (intType < 1 || intType > 4)//判断你输入的字符是否是1、2、3、4
        {
            intType = int.Parse(Console.ReadLine());
            if (intType < 1 || intType > 4)//如果不是的话
                Console.WriteLine("输入数字不正确...");
        }
        return intType;
    }

    public static void Main()
    {
        int intMaintain;//对目录或者文件操作的类型
        string strDir;//目录名称
        string strFile;//文件名称
        string strResult = "";

        MaintainFile myMaintain = new MaintainFile();
        intMaintain = myMaintain.IntModify();//检测输入的选项数字是否有效

        Console.WriteLine("输入目录名称: ");
        strDir = Console.ReadLine();
        Console.WriteLine("输入文件名称: ");
        strFile = Console.ReadLine();

        switch (intMaintain)
        {
            case 1://1类型就是新建文件
                myMaintain.CreateNewFile(strDir, strFile);
                strResult = "文件新建完成";
                break;
            case 2:
                myMaintain.DeleteFile(strDir, strFile);
                strResult = "文件删除完成";
                break;
            case 3:
                string strFileCopy;
                Console.WriteLine("输入复制文件名称: ");
                strFileCopy = Console.ReadLine();

                myMaintain.CopyFile(strDir, strFile, strFileCopy);
                strResult = "文件复制完成";
                break;
            case 4:
                string strFileMove;
                Console.WriteLine("输入移动文件名称: ");
                strFileMove = Console.ReadLine();
                myMaintain.MoveFile(strDir, strFile, strFileMove);
                strResult = "文件移动完成";
                break;
        }

        Console.WriteLine(strResult);
        Console.Read();
    }

    private void CreateNewFile(string strDir, string strFilename)
    {   //FileInfo的实例方法具备对文件的操作:打开、创建、复制、移动和删除
        //File的方法静态具备对文件的操作:打开、创建、复制、移动和删除
        //FileInfo类包含File类所有的功能,并且更多
        try//尝试 
        {
            //Path  路径
            //目录+你要创建对象的名称   =路径
            // File.Create(“路径名”);
            FileInfo myFileInfo = new FileInfo(strDir + strFilename);//创建当前文件对象
                                                                     //比如创建一个txt文件
                                                                     //myFileInfo.Create().Close();
            FileStream myFileStream = myFileInfo.Create();//通过当前文件对象创建对应文件流
            //不对myFileStream写入任何内容
            myFileStream.Close();//关闭产生的当前文件流,自动产生文件
        }
        catch
        {
            Console.WriteLine("错误的文件格式!!");
        }
    }

    private void CopyFile(string strDir, string strFilename1, string strFileName2)
    {
        try
        {   //创建当前文件对象
            FileInfo myFileInfo = new FileInfo(strDir + strFilename1);
            //当前文件对象CopyTo
            myFileInfo.CopyTo(strDir + strFileName2, true);//移动到指定的路径  路径=目录字符串+文件名
        }
        catch
        {
            Console.WriteLine("文件复制错误!!");
        }

    }

    private void DeleteFile(string strDir, string strFilename)
    {
        try
        {
            bool blnFileExist;
            blnFileExist = File.Exists(strDir + strFilename);

            if (!blnFileExist)
            {
                Console.WriteLine("文件不存在");
                return;
            }
            //创建当前文件对象
            FileInfo myFileInfo = new FileInfo(strDir + strFilename);
            //当前文件对象Delete   

            myFileInfo.Delete();//跟据初始化的路径删除文件
        }
        catch
        {
            Console.WriteLine("删除文件错误!!");
        }
    }

    private void MoveFile(string strDir, string strFilename1, string strFilename2)
    {
        try
        { //创建当前被移动的文件对象myFileInfo
            FileInfo myFileInfo = new FileInfo(strDir + strFilename1);
            bool blnFileExist;
            blnFileExist = myFileInfo.Exists;//判断myFileInfo这个文件是否存在

            if (!blnFileExist)
            {
                Console.WriteLine("文件不存在");
                return;
            }
            //当前被移动的文件对象myFileInfo之MoveTo方法
            myFileInfo.MoveTo(strDir + strFilename2);//移动到指定的路径
        }
        catch
        {
            Console.WriteLine("文件移动错误!!");
        }
    }
}
//文件创建的是流,关闭即产生。
//文件的移动MoveTo、删除Delete、复制CopyTo,是自身的方法。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ClementQL

机会只属于对自己更狠的人。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值