更改 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 的默认桌面保存位置的主要内容,如果未能解决你的问题,请参考以下文章