更改 iTextSharp 的默认桌面保存位置

Posted

技术标签:

【中文标题】更改 iTextSharp 的默认桌面保存位置【英文标题】:Changing the default desktop save location of iTextSharp 【发布时间】:2017-04-24 08:53:33 【问题描述】:

我在互联网上到处寻找,但我的代码与其他代码不匹配。我有这个

  string outputFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), fullname);

我无法使用Environment.SpecialFolder.Desktop 将其转至Documents/Files 如何指定保存我的pdf 文档的文件夹?

这是我的完整代码。

string outputFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), fullname);
FileStream fs = new FileStream(outputFile, FileMode.Create, FileAccess.Write, FileShare.None);
Document doc = new Document(PageSize.A4, 60, 60, 40, 30);
PdfWriter w = PdfWriter.GetInstance(doc, fs);
doc.Open();
    .
    .
    .
doc.Close();

【问题讨论】:

不确定我是否理解您的问题,但您可以将outputFile 的值设置为您想要的任何位置,文件将被写入那里。我错过了什么? 嘿我试过你说的,我做了这个。 string outputFile ="C:\Users\Company\Documents\My Web Sites" 但它给我一个UnauthorizedAccessException was unhandled?? 那是因为您没有在outputFile 中指定文件名,只指定文件夹。 那里!我做到了!谢啦。我忘了添加文件名。你还是我应该回答这个问题? 我认为你应该先看看@GeniusBraiNs 的回答。他有比仅仅硬编码非常有限的文件路径更好的方法。除非那不是你真正想要的。 【参考方案1】:

如果我理解正确,这就是你应该使用的:

string outputFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), @"Documents/Files", fullname);

如果您想要的输出文件夹不是桌面的子文件夹,您可以删除Environment.GetFolderPath(...) 部分并使用您想要的任何路径。不要忘记使用转义字符串(即使用“@”)。并且不要忘记将文件名与输出文件夹路径结合起来。

如果不是您所追求的,请提供更多详细信息。

【讨论】:

但这就是它的所有细节。我尝试了你的建议,它给了我DirectoryNotFoundException,它说Could not find a part of the path C:\Users\Company\Desktop\Documents\Files\fullname.pdf 请阅读这部分答案:“如果您想要的输出文件夹不是桌面的子文件夹,...” 哦,好吧,对不起。我试过了,我最终得到了这个绝对路径。 string outputFile = Path.Combine("C:/Users/Company/Downloads", fullname); 并且有效。但是@ 是做什么用的呢? @Fiendcoder1, DirectoryNotFoundException 表示您必须先创建目录。你可以通过代码做到这一点 @Fiendcoder1, @ 用于制作逐字字符串而不是常规字符串。查看this answer 了解更多信息。您可能还需要检查 this MSDN article 是否需要转义哪些字符。

以上是关于更改 iTextSharp 的默认桌面保存位置的主要内容,如果未能解决你的问题,请参考以下文章

如何更改电脑储存路径

iTextSharp `save as` 保存到用户定义的位置

更改 iOS 模拟器保存的屏幕截图的位置

Windows运维的学习笔记

火狐默认的下载路径是哪里?

iTextSharp 更改结果质量/压缩,如 PDF24Creator