C# 判断文件是否存在和文件读写


一、文件是否存在

c#中操作IO非常简单,下面介绍如何判断文件夹或文件是否存在的方法。  代码如下: 
//判断文件夹是否存在,不存在则创建文件夹 
if (!System.IO.Directory.Exists(@"E:\Files")) 

   System.IO.Directory.CreateDirectory(@"E:\Files");//不存在就创建文件夹 } 
//判断某文件是否存在 
需要引用命名空间using System.IO; 
if(File.Exists(@"E:\Files\test.txt")) 

//存在 

else 

//不存在 

}


二、文件读写

文件写

class WriteTextFile
    {
        static void Main()
        {
            //如果文件不存在,则创建;存在则覆盖
            //该方法写入字符数组换行显示
            string[] lines = { "first line", "second line", "third line","第四行" };
            System.IO.File.WriteAllLines(@"C:\testDir\test.txt", lines, Encoding.UTF8);

            //如果文件不存在,则创建;存在则覆盖
            string strTest = "该例子测试一个字符串写入文本文件。";
            System.IO.File.WriteAllText(@"C:\testDir\test1.txt", strTest, Encoding.UTF8);

            //在将文本写入文件前,处理文本行
            //StreamWriter一个参数默认覆盖
            //StreamWriter第二个参数为false覆盖现有文件,为true则把文本追加到文件末尾
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\testDir\test2.txt",true))
            {
                foreach (string line in lines)
                {
                    if (!line.Contains("second"))
                    {
                        file.Write(line);//直接追加文件末尾,不换行
                        file.WriteLine(line);// 直接追加文件末尾,换行   
                    }
                }
            }
        }
    }


文件读

class ReadTextFile
    {
        static void Main()
        {
            //直接读取出字符串
            string text = System.IO.File.ReadAllText(@"C:\testDir\test1.txt");
            Console.WriteLine(text);

            //按行读取为字符串数组
            string[] lines = System.IO.File.ReadAllLines(@"C:\testDir\test.txt");
            foreach (string line in lines)
            {
                Console.WriteLine(line);
            }

            //从头到尾以流的方式读出文本文件
            //该方法会一行一行读出文本
            using (System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\testDir\test.txt"))
            {
                string str;
                while ((str = sr.ReadLine()) != null)
                {
                    Console.WriteLine(str);
                }
            }
            Console.Read();
        }
    }


三、读取内容string转int等

string[] linesRead = File.ReadAllLines(@strConfigPath);

Convert.ToInt32(linesRead[0]);

to其他格式的可以转别的数据类型


四、System.IO.IOException

msdn阐述:如果发生 I/O 错误(如读写文件失败),则会引发 IOException


目前遇到的问题,以上读写方法有的貌似不会自动关闭文件流,手动打开读写用的测试文件后,会出现该异常

如何处理留待更新

C#中,可以使用System.IO命名空间中的Directory.Exists()方法来判断文件是否存在。如果文件夹存在,则返回true;如果文件夹不存在,则返回false。下面是一个示例代码: ```csharp using System.IO; string folderPath = @"E:\Files"; if (Directory.Exists(folderPath)) { // 文件夹存在 Console.WriteLine("文件夹存在"); } else { // 文件夹不存在 Console.WriteLine("文件夹不存在"); } ``` 在上述代码中,我们首先定义了一个文件夹路径`folderPath`,然后使用`Directory.Exists()`方法来判断文件是否存在。如果存在,则输出"文件夹存在";如果不存在,则输出"文件夹不存在"。 #### 引用[.reference_title] - *1* [C# 判断文件是否存在文件读写](https://blog.csdn.net/u012692537/article/details/60479600)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [C#判断文件夹或文件是否存在的方法](https://blog.csdn.net/BeanGo/article/details/121902170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [C#判断文件文件是否存在的方法](https://blog.csdn.net/weixin_42205218/article/details/106534065)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值