【问题标题】:How to insert file directory如何插入文件目录
【发布时间】:2019-07-06 23:57:43
【问题描述】:

我用 iTextSharp 制作了一个程序,它允许用户单击一个按钮来选择一个文件并使用第二个按钮执行主要功能。 现在我想制作一个按钮来替换第二个按钮中的这个功能:

using (Stream dest = File.Create(@"L:\Users\user\Documents\PDFnummerieren\PDF.pdf"))

我想制作第三个按钮,该按钮将获取用户选择的位置,而不是不可更改的给定位置。

整个代码:

    private void button1_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(theFile) || !File.Exists(theFile))
            return;
        byte[] bytes = File.ReadAllBytes(theFile);
        iTextSharp.text.Font blackFont = FontFactory.GetFont("Arial", 12,
 iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
        using (Stream source = File.OpenRead(theFile))
        using (Stream dest = File.Create(theCFile))
        {
            PdfReader reader = new PdfReader(source);
            using (PdfStamper stamper = new PdfStamper(reader, dest))
            {
                int pages = reader.NumberOfPages;
                for (int i = 1; i <= pages; i++)
                {
                    ColumnText.ShowTextAligned(stamper.GetOverContent(i), Element.ALIGN_RIGHT,
                        new Phrase(i.ToString(), blackFont), 568f, 15f, 0);
                }
            }
        }
    }

         private void button3_Click(object sender, EventArgs e)
    {
        var FD = new System.Windows.Forms.OpenFileDialog();
        if (FD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            theFile = FD.FileName;
    }
    private void button12_Click(object sender, EventArgs e)
    {
        var FD = new System.Windows.Forms.FolderBrowserDialog();
        if (FD.ShowDialog() == System.Windows.Forms.DialogResult.OK) ;

    }

【问题讨论】:

  • 有什么问题?您已经正确地将 OpenFileDialog 识别为向用户询问文件夹的方式。
  • File.Create 将文件保存为给定方向的 PDF.pdf。它不会询问用户它应该保存在哪里。它只是询问文件在哪里转换

标签: c# directory itext


【解决方案1】:

使用FolderBrowserDialog 类选择文件夹位置。

您可以使用Path.Combine(selectedFolder, filename) 组合输出文件夹和文件名,并将其放在using 语句中。

保存所选输出文件夹的代码:

private void button12_Click(object sender, EventArgs e)
{
    var FD = new System.Windows.Forms.FolderBrowserDialog();
    if (FD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        string selectedPath = FD.SelectedPath;
        theCFile = Path.Combine(selectedPath, theFile)
    }
}

【讨论】:

  • 但我可以执行“savedFile = FD.FileName;”,因为用户需要单击其他 PDF 来替换它。我希望他只选择一个目录并将其保存为之前的名称。
  • 您可以使用FolderBrowserDialog。我会更新我的答案
  • 它说:禁止空路径。
  • 你能用你当前的代码更新你的起始帖子,以便我看一下吗?
  • 进程无法访问文件“...”,因为它正被另一个进程使用。
猜你喜欢
  • 2020-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-11
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多