【问题标题】:Portable Stream writer c#便携式流编写器 c#
【发布时间】:2012-06-03 19:44:35
【问题描述】:

我目前正在制作一个需要打印到文本文件的应用程序,我无法将其移植到下面是我目前所拥有的

FileStream fs = new FileStream((@"|DataDirectory|\print" + fileName + ".txt"), FileMode.Create, FileAccess.Write);
            using (StreamWriter writer = new StreamWriter(fs))
            {
                    write.write("HelloWorld"
            }

错误出现在第一行,说我使用了无效字符,我假设这是因为 |DataDirectory|但除此之外,我不知道如何在用户的机器上使用它?

编辑:我不再需要检查项目,但@leppie 的评论听起来像是我的代码的问题。标记的答案可以作为替代方法

【问题讨论】:

标签: c# portability streamwriter


【解决方案1】:

如果您正在开发桌面应用程序,请尝试以下操作:

string dir = Path.GetDirectory(Assembly.GetExecutingAssembly().Location);
string filename = Path.Combine(dir, "print", filename + ".txt");
FileStream fs = new FileStream(filename,....);

【讨论】:

  • 其实你要Application.StartupPath
  • 第一次尝试了 leppie,因为它更小而且效果很好,不过还是谢谢
【解决方案2】:

将第一行修改为以下内容:

var fs=new FileStream(
       string.Format(@"{0}\print\{1}.txt",
       Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
       filename),FileMode.Create,FileAccess.Write);

【讨论】:

  • 这会将其保存到 appdata\Roaming?
  • 是的 :) 它也是“跨 Windows 操作系统”。我想知道如果没有它,您是如何在 appdata 中创建“打印”文件夹的..
猜你喜欢
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 2012-11-20
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-07
相关资源
最近更新 更多