0
点赞
收藏
分享

微信扫一扫

【C#学习】

半夜放水 2022-04-25 阅读 56

1、界面设计

在这里插入图片描述

<Window x:Class="A._4._2_文本文件读写练习.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:A._4._2_文本文件读写练习"
        mc:Ignorable="d"
        Title="文本文件读写练习" Height="250" Width="570">
    <Grid Margin="0,0,2,0">
        <TextBox x:Name="textBox" HorizontalAlignment="Left" Height="210" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="259" AcceptsReturn="True"/>
        <GroupBox x:Name="groupBox" Header="文件选择" HorizontalAlignment="Left" Margin="264,31,0,0" VerticalAlignment="Top" Height="64" Width="286">
            <StackPanel HorizontalAlignment="Left" Height="34" Margin="0,0,-2,0" VerticalAlignment="Top" Width="276" Orientation="Horizontal">
                <TextBlock x:Name="textBlock" TextWrapping="Wrap" Text="文件路径" Margin="0,10,0,0"/>
                <TextBox x:Name="textBox1" TextWrapping="Wrap" Text="" Width="156" Margin="10,10,0,0"/>
                <Button x:Name="button" Content="浏览" Width="46" Margin="10,10,0,0" Click="button_Click"/>
            </StackPanel>
        </GroupBox>
        <GroupBox x:Name="groupBox1" Header="文件操作" HorizontalAlignment="Left" Margin="264,131,0,0" VerticalAlignment="Top" Height="61" Width="286">
            <StackPanel HorizontalAlignment="Left" Height="41" Margin="0,0,-2,-2" VerticalAlignment="Top" Width="276" Orientation="Horizontal">
                <Button x:Name="button1" Content="读取文件" Margin="40,10,0,10" Width="82" Click="button1_Click"/>
                <Button x:Name="button2" Content="保存文件" Width="75" Margin="40,10,0,10" Click="button2_Click"/>
            </StackPanel>
        </GroupBox>
    </Grid>
</Window>

2、功能实现

using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace A._4._2_文本文件读写练习
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        //浏览按钮事件
        private void button_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog fa = new OpenFileDialog();//文件对话框对象
            fa.Filter = "所有文件|*.*|文本文件|*.txt|cs文件|*.cs";//设置能获得的文件类型
            fa.Multiselect = false;//获取或设置一个值,该值指示对话框是否允许选择多个文件

            //显示文件对话框
            if (fa.ShowDialog() == true)
            {
                this.textBox1.Text = fa.FileName;//获得并显示文件地址
            }
        }

        //读取文件按钮事件
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            string filepath = textBox1.Text;
            if(File.Exists(filepath))//如果文件存在,则打开
            {
                string[] readfile = File.ReadAllLines(filepath, Encoding.UTF8);
                this.textBox.Text = string.Join("\n", readfile);
            }
            else
            {
                MessageBox.Show("文件不存在,请重新输入");
            }
            
        }

        //保存文件按钮事件
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            //打开保存文件对话框保存文件
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Title = "";
            sfd.InitialDirectory = @"C:\";//默认打开位置
            sfd.Filter = "文本文件| *.txt";//可以保存的文件类型
            sfd.ShowDialog();//显示文件对话框

            string path = sfd.FileName;
            if (path == "")
            {
                return;
            }

            using (FileStream fsWrite = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))
            {
                byte[] buffer = Encoding.Default.GetBytes(textBox.Text);
                fsWrite.Write(buffer, 0, buffer.Length);
                MessageBox.Show("保存成功");

            }


            根据文件路径保存文件
            //string filepath = this.textBox1.Text;
            //string[] writefile = this.textBox.Text.Split('\n');
            //File.WriteAllLines(filepath, writefile, Encoding.UTF8);
            //MessageBox.Show("保存成功");
        }
    }
}

举报

相关推荐

C#学习总结

C#学习教程

C#学习记录

C#学习备份

C#学习汇总

C#学习笔记

0 条评论