为了账号安全,请及时绑定邮箱和手机立即绑定

c#如何让用户选择文件夹然后输入

c#如何让用户选择文件夹然后输入

C#
牧羊人nacy 2022-01-09 10:12:56
我对 C# 相当陌生,所以我不知道如何解决这个问题。我有这段代码,它会生成表单,因此会出现一个弹出框,让您选择用户想要选择的文件夹。问题是,在它被选中后,它没有提供按 enter 或按 ok 的选项,以便我的其余代码可以使用该文件夹作为执行我想做的其余部分的路径。这是代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using PdfSharp.Pdf;using PdfSharp.Pdf.IO;using System.IO;namespace FolderBrowserDialogSampleInCSharp{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void BrowseFolderButton_Click(object sender, EventArgs e)        {            FolderBrowserDialog folderDlg = new FolderBrowserDialog();            folderDlg.ShowNewFolderButton = true;            // Show the FolderBrowserDialog.            DialogResult result = folderDlg.ShowDialog();            if (result == DialogResult.OK)            {                textBox1.Text = folderDlg.SelectedPath;                Environment.SpecialFolder root = folderDlg.RootFolder;                var dir = textBox1.Text;                File.SetAttributes(dir, FileAttributes.Normal);                string[] files = Directory.GetFiles(dir, "*.pdf");                IEnumerable<IGrouping<string, string>> groups = files.GroupBy(n => n.Split('.')[0].Split('_')[0]);                foreach (var items in groups)                {                    Console.WriteLine(items.Key);                    PdfDocument outputPDFDocument = new PdfDocument();                    foreach (var pdfFile in items)                    {                        Merge(outputPDFDocument, pdfFile);                    }        }我假设我必须在表单设计中添加一个按钮作为“输入”或“确定”。我可以这样吗,以便用户选择文件夹并点击确定后,程序会继续将其存储为用户选择的路径?
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

我一直在寻找的答案:


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using PdfSharp.Pdf;

using PdfSharp.Pdf.IO;

using System.IO;



namespace FolderBrowserDialogSampleInCSharp

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }


        private void BrowseFolderButton_Click(object sender, EventArgs e)

        {

            FolderBrowserDialog folderDlg = new FolderBrowserDialog();

            folderDlg.ShowNewFolderButton = true;

            // Show the FolderBrowserDialog.

            DialogResult result = folderDlg.ShowDialog();

            if (result == DialogResult.OK)

            {

                textBox1.Text = folderDlg.SelectedPath;

                Environment.SpecialFolder root = folderDlg.RootFolder;






            var dir = textBox1.Text;


            File.SetAttributes(dir, FileAttributes.Normal);

                string[] files = Directory.GetFiles(dir, "*.pdf");

                IEnumerable<IGrouping<string, string>> groups = files.GroupBy(n => n.Split('.')[0].Split('_')[0]);


                foreach (var items in groups)

                {

                    Console.WriteLine(items.Key);

                    PdfDocument outputPDFDocument = new PdfDocument();

                    foreach (var pdfFile in items)

                    {

                        Merge(outputPDFDocument, pdfFile);

                    }

                    if (!Directory.Exists(dir + @"\Merge"))

                        Directory.CreateDirectory(dir + @"\Merge");


                    outputPDFDocument.Save(Path.GetDirectoryName(items.Key) + @"\Merge\" + Path.GetFileNameWithoutExtension(items.Key) + ".pdf");

                }

                Console.Read();


                Close();

            }


        }

        private static void Merge(PdfDocument outputPDFDocument, string pdfFile)

        {

            PdfDocument inputPDFDocument = PdfReader.Open(pdfFile, PdfDocumentOpenMode.Import);

            outputPDFDocument.Version = inputPDFDocument.Version;

            foreach (PdfPage page in inputPDFDocument.Pages)

            {

                outputPDFDocument.AddPage(page);

            }

        }



    }




}


查看完整回答
反对 回复 2022-01-09
  • 1 回答
  • 0 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信