C#询问用户哪个目录是需要合并的PDF。然后问用户新的子文件夹将被称为合并PDF的去向吗?

时间:2018-07-23 14:08:18

标签: c# user-interface user-input

所以我想出了进入目录的C#代码,搜索PDF文件名及其带有_1的免费PDF文件,并将它们合并到该目录中的一个名为“合并”的文件夹中

  using PdfSharp.Pdf;
    using PdfSharp.Pdf.IO;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace ConsoleApp1
    {
        class Program
        {
                   //private const string dir = @"C:\Users\XBorja\Desktop\IMAGES\";
        static void Main(string[] args)
        {
            Console.WriteLine("Please Enter Location");
            var dir = Console.ReadLine();
            File.SetAttributes(dir, FileAttributes.Normal);
            string[] files = Directory.GetFiles(dir, "*.pdf");
            IEnumerable<IGrouping<string, string>> groups = files.GroupBy(n => n.Split('.')[0].Split('_')[0]);
            //string f = files[0].Split('_')[0];
            foreach (var items in groups)
                {
                    Console.WriteLine(items.Key);
                    PdfDocument outputPDFDocument = new PdfDocument();
                    foreach (var pdfFile in items)
                    {
                        Merge(outputPDFDocument, pdfFile);
                    }
                    outputPDFDocument.Save(Path.GetDirectoryName(items.Key) + @"\Merge\" + Path.GetFileNameWithoutExtension(items.Key) + ".pdf");
                }
                Console.ReadKey();
            }
            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);
                }
            }
        }
    }

这很好用,但是我宁愿而不是对其进行硬编码而是通过询问PDF的合并目录来提示用户。然后,一旦执行该操作,请询问用户新的子文件夹将被命名为合并后的pdf文件所在的位置。

我刚接触C#

1 个答案:

答案 0 :(得分:1)

没有验证等,让用户提供信息很简单:

False
相关问题