WPF读写文件

WPF 文件读写操作完整指南

在WPF应用程序中,文件读写是常见的操作需求。本文将详细介绍如何在WPF中进行文件的读取和写入操作,包括各种文件格式的处理方法、异步操作、错误处理以及最佳实践。

一、基本文件读写操作

1. 使用StreamReader和StreamWriter

using System.IO;
using System.Windows;

public class FileOperations
{
    // 写入文本文件
    public static void WriteTextFile(string filePath, string content)
    {
        try
        {
            using (StreamWriter writer = new StreamWriter(filePath))
            {
                writer.Write(content);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show($"写入文件失败: {ex.Message}", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
        }
    }

    // 读取文本文件
    public static string ReadTextFile(string filePath)
 
### WPF读写 INI 文件的方法 在 WPF 应用程序中,可以通过调用 Windows API 函数 `WritePrivateProfileString` 和 `GetPrivateProfileString` 来实现对 INI 文件读取和写入操作。以下是具体的代码示例: #### 写入 INI 文件 通过调用 `WritePrivateProfileString` 方法可以向指定的 INI 文件写入数据。 ```csharp [DllImport("kernel32.dll", CharSet = CharSet.Unicode)] private static extern int WritePrivateProfileString(string section, string key, string val, string filePath); public static void WriteIniFile(string section, string key, string value, string filePath) { WritePrivateProfileString(section, key, value, filePath); } ``` 此方法会根据传入的参数,在指定的 INI 文件中创建或更新对应节(Section)、键(Key)以及其值[^1]。 #### 读取 INI 文件 为了从 INI 文件中获取特定的数据,可以使用 `GetPrivateProfileString` 方法。 ```csharp [DllImport("kernel32.dll", CharSet = CharSet.Unicode)] private static extern int GetPrivateProfileString(string section, string key, string defaultValue, StringBuilder retVal, int size, string filePath); public static string ReadIniFile(string section, string key, string defaultValue, string filePath) { StringBuilder result = new StringBuilder(255); GetPrivateProfileString(section, key, defaultValue, result, 255, filePath); return result.ToString(); } ``` 这段代码定义了一个静态方法来读取 INI 文件中的某个键值,并返回相应的字符串结果。如果没有找到对应的键,则返回默认值[^1]。 #### 使用示例 下面是一个完整的例子,演示如何在一个 WPF 应用程序中使用这些功能。 ```csharp using System; using System.Text; namespace IniFileExample { public class IniFileManager { [DllImport("kernel32.dll", CharSet = CharSet.Unicode)] private static extern int WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32.dll", CharSet = CharSet.Unicode)] private static extern int GetPrivateProfileString(string section, string key, string defaultValue, StringBuilder retVal, int size, string filePath); public static void WriteToIni(string section, string key, string value, string filePath) { WritePrivateProfileString(section, key, value, filePath); } public static string ReadFromIni(string section, string key, string defaultValue, string filePath) { StringBuilder result = new StringBuilder(255); GetPrivateProfileString(section, key, defaultValue, result, 255, filePath); return result.ToString(); } } public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); string iniFilePath = "config.ini"; // 写入配置 IniFileManager.WriteToIni("WindowSettings", "Width", "800", iniFilePath); IniFileManager.WriteToIni("WindowSettings", "Height", "600", iniFilePath); // 读取配置 string width = IniFileManager.ReadFromIni("WindowSettings", "Width", "DefaultWidth", iniFilePath); string height = IniFileManager.ReadFromIni("WindowSettings", "Height", "DefaultHeight", iniFilePath); Console.WriteLine($"Width: {width}, Height: {height}"); } } } ``` 以上代码展示了如何在 WPF 应用程序初始化阶段保存窗口大小到 INI 文件,并从中加载之前存储的尺寸信息[^1]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

code_shenbing

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值