C#文件路径操作、文件操作_System

一、文件路径操作

1.1、System.IO.Path

常用函数 需要引用System.IO 直接可以调用Path的静态方法


class Program

{

    static void Main(string[] args)

    {

        //获取当前运行程序的目录

        string fileDir = Environment.CurrentDirectory;

        Console.WriteLine("当前程序目录:"+fileDir);

        

        //一个文件目录

        string filePath = "C:\\JiYF\\BenXH\\BenXHCMS.xml";

        Console.WriteLine("该文件的目录:"+filePath);


        string str = "获取文件的全路径:" + Path.GetFullPath(filePath);   //-->C:\JiYF\BenXH\BenXHCMS.xml

        Console.WriteLine(str);

        str = "获取文件所在的目录:" + Path.GetDirectoryName(filePath); //-->C:\JiYF\BenXH

        Console.WriteLine(str);

        str = "获取文件的名称含有后缀:" + Path.GetFileName(filePath);  //-->BenXHCMS.xml

        Console.WriteLine(str);

        str = "获取文件的名称没有后缀:" + Path.GetFileNameWithoutExtension(filePath); //-->BenXHCMS

        Console.WriteLine(str);

        str = "获取路径的后缀扩展名称:" + Path.GetExtension(filePath); //-->.xml

        Console.WriteLine(str);

        str = "获取路径的根目录:" + Path.GetPathRoot(filePath); //-->C:\

        Console.WriteLine(str);

        Console.ReadKey();

    }

}

1.2、System.IO.Directory

try

{

    var reportPath = seriesDir + "Reports";

    if (!System.IO.Directory.Exists(reportPath))

    {

        System.IO.Directory.CreateDirectory(reportPath);

    }

    return reportPath;

}

catch (Exception)

{

    return null;

}

二、文件操作

2.1、System.IO.File

2.1.1、System.IO.File.Exists 和 System.IO.File.Move

public void changeFileName(string fileName,string newFileName)

{

    if (File.Exists(fileName))

    {

           File.Move(fileName, newFileName);

    }

}

2.1.2、System.IO.File.Copy

文件重命名并复制到指定路径


var Path = $"{reportPath}\\{Name}_{dataId}_" +                                   $"{Value.ToString("yyyyMMdd")}_{"fisres"}.csv";

try

{

    var sourcePath = $"{offlinePath}\\{"bmi-fisres"}.csv";

    if (File.Exists(sourcePath))

    {

        File.Copy(sourcePath, Path);

    }

}

catch (Exception e)

{

    LOG4CXX.Error(e.StackTrace);

}



2.1.3、System.IO.File.Create

File.Create(@"C:\xxx.txt")


2.1.4、System.IO.File.Delete

File.Delete(@"C:\xxx.txt")


2.1.5、System.IO.File.ReadAllBytes

读取文件


byte[] buffer = File.ReadAllBytes(@"C:\xxx.txt");

string str=Encoding.GetEncoding("GB2312").GetString(buffer);

Console.WriteLine(str);

Console.ReadKey();

2.1.5、System.IO.File.WriteAllBytes

写入文件


//没有该文件则新建,有则覆盖旧的

string str="Hello World";

byte[] buffer = Encoding.Default.GetBytes(str);

File.WriteAllBytes(@"C:\xxx.txt",buffer);

File.WriteAllLines(@"C:\xxx.txt",new string[]{"sf","wer","qt"});

File.WriteAllText(@"C:\xxx.txt","sdfasdfas");

File.AppendAllText(@"C:\xxx.txt","hiihljggu");


Console.WriteLine("写入成功");

Console.ReadKey();