当前位置: 首页 > news >正文

C# 窗体应用(.FET Framework ) 打开文件操作

一、 打开文件或文件夹加载数据

1. 定义一个列表用来接收路径

public List<string> paths = new List<string>();

2. 打开文件选择一个文件并将文件放入列表中

OpenFileDialog open = new OpenFileDialog();
// 过滤
open.Filter = "(*.jpg;*.jpge;*.bmp;*.png)|*.jpg;*.jpge;*.bmp;*.png";
open.Title = "请选择一个文件";
string path = "";
if (open.ShowDialog() == DialogResult.OK)
{
    // 放入前先清空列表
    paths.Clear();
    path = open.FileName;
    paths.Add(path);
}

3. 打开一个文件夹并选择一个文件夹再将文件夹中的目录放入列表中

FolderBrowserDialog files = new FolderBrowserDialog();
files.Description = "请选择文件夹";
string filePath = "";
if (files.ShowDialog() == DialogResult.OK) {
    paths.Clear();
    filePath = files.SelectedPath;  // 获取文件夹路径
    // 获取文件夹下所有文件
    DirectoryInfo filePaths = new DirectoryInfo(filePath);
    FileInfo[] fileData = filePaths.GetFiles();  // 过滤文件 "**.bmp"
    foreach (FileInfo file in fileData)
    {
        paths.Add(file.FullName);
    }
}

4. 每次调用都可以获取列表中的一个文件

public int num = 0;
private string GetPath()
{
    num++;
    if (num > paths.Count - 1) {
        num = 0;
    }
    return paths[num];
}

二、封装

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace VP与C_连接
{
    internal class MyFileSelection
    {
        public List<string> paths = new List<string>();
        public int num = 0;
        /// <summary>
        /// 选择文件
        /// </summary>
        /// <returns></returns>
        public string SelectionFile() {
            OpenFileDialog open = new OpenFileDialog();
            // 过滤
            open.Filter = "(*.jpg;*.jpge;*.bmp;*.png)|*.jpg;*.jpge;*.bmp;*.png";
            open.Title = "请选择一个文件";
            string path = "";
            if (open.ShowDialog() == DialogResult.OK)
            {
                // 放入前先清空列表
                paths.Clear();
                path = open.FileName;
                paths.Add(path);
            }
            return path;
        }

        /// <summary>
        /// 选择文件夹
        /// </summary>
        /// <returns></returns>
        public string SelectionFolder()
        {
            FolderBrowserDialog files = new FolderBrowserDialog();
            files.Description = "请选择文件夹";
            string filePath = "";
            if (files.ShowDialog() == DialogResult.OK)
            {
                paths.Clear();
                filePath = files.SelectedPath;  // 获取文件夹路径
                // 获取文件夹下所有文件
                DirectoryInfo filePaths = new DirectoryInfo(filePath);
                FileInfo[] fileData = filePaths.GetFiles();  // 过滤文件 "**.bmp"
                foreach (FileInfo file in fileData)
                {
                    paths.Add(file.FullName);
                }
            }
            return filePath;
        }

        /// <summary>
        /// 获取文件夹下不同的路径
        /// </summary>
        /// <returns></returns>
        public string GetPath()
        {
            num++;
            if (num > paths.Count - 1) {
                num = 0;
            }
            return paths[num];
        }
    }
}

相关文章:

  • 万字解析Spring简易版实现方案!
  • Linux系统安装RabbitMQ
  • Unity中 粒子系统使用整理(一)
  • H.264编码解析与C++实现详解
  • Jenkins详细安装配置部署
  • php根据一个数组里面的元素顺序来排序另外一个数组的的顺序
  • 主相机绑定小地图
  • C# FileStream 使用详解
  • 什么是大数据?
  • 从【抖音安全与信任中心】观察企业如何做算法透明
  • 【Nova UI】一、探秘 Vue 组件库搭建:从技术选型到持续迭代
  • 北京南文观点:后糖酒会营销,以战略传播重构品牌信心坐标
  • 前端主流技术现状与未来趋势分析
  • 数据结构之二叉树Python版
  • 基于Huggingface的lerobot项目在so-arm100机械臂上的复现全过程记录
  • DM数据迁移工具
  • 2025.3.24-2025.3.30学习周报
  • C# System.Net.IPEndPoint 使用详解
  • 实战打靶集锦-34-midnight
  • MTK Camera 照片切视频Systrace拆解分析
  • 驱逐行动再加码?特朗普或向利比亚和卢旺达遣送非法移民
  • 前瞻|中俄元首今年将首次面对面会晤,专家:国际变局中构建更坚韧的合作架构
  • 中国公民免签赴马来西亚的停留天数如何计算?使馆明确
  • 原四川省农村信用社联合社党委副书记、监事长杨家卷被查
  • 一季度全国30强城市出炉:谁能更进一步?谁掉队了?
  • 世界哮喘日丨张旻:哮喘的整体诊断率不足三成,吸入治疗是重要治疗手段