【问题标题】:Get path and create files dynamically获取路径并动态创建文件
【发布时间】:2013-11-20 10:18:34
【问题描述】:

我想在应用程序数据目录中创建一个文件并将条形码列表中的数据保存到该文件中。有人可以帮我处理这段代码吗?

try
{
    string timestamp = DateTime.Now.ToString("MM-dd-yyyy.HH-mm-ss");
    File.Create("E:\\myfile.txt" + timestamp);

    // Add some text to file

    FileStream fstm = new FileStream("E:\\myfile.txt", FileMode.OpenOrCreate, FileAccess.Write);
    StreamWriter writer = new StreamWriter(fstm);
    writer.Write(InputData);
    writer.Close();
}
catch (Exception ex) {

    MessageBox.Show("prblm : " + ex.Message,
                "Barcode List",
                MessageBoxButtons.OK,
                MessageBoxIcon.Exclamation,
                MessageBoxDefaultButton.Button1);
    return;
}

【问题讨论】:

  • 欢迎来到 Stackoverflow!不幸的是,您的问题还不是一个“好问题”,因此人们不太可能为您提供帮助。你面临什么确切的问题?您收到错误消息吗?会发生什么,应该发生什么以及两者有何不同?您可以使用问题下方的“编辑”链接来改进它。
  • prblm 发生路径的一部分丢失,我想获取应用程序数据目录的路径并想在那里创建一个名称为 timstamp 的文件夹,并且我想保存上面的文件( myfile.txt) 在那个文件夹中
  • 显示的错误是路径的一部分丢失,但现在我想使用上面评论中提到的逻辑

标签: c#


【解决方案1】:

您可以通过Environment.SpecialFolder 枚举访问appdata 目录。您可能对两个感兴趣,CommonApplicationData(非用户特定数据)和LocalApplicationData(用户特定数据)。

var lines = File.ReadLines(BarCodeList.Text).ToList();
if (!lines.Any())
{
    return;
}
var dir = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + @"\" +
            DateTime.UtcNow.ToString("yyyyMMdd");
Directory.CreateDirectory(dir);
File.WriteAllLines(dir + @"\myFile.txt", lines);

【讨论】:

  • 我想在应用程序数据中添加一个文件夹,并在该文件夹中保存文件。
  • @user3012548 我更新了我的示例以检查当前日期的文件夹是否存在,如果不存在,请创建它。您显然可以给您的文件夹起任何您喜欢的名称。
  • +1。注意if (!Directory.Exists)is not required.
  • @Veleous:不客气!当我们这样做时:使用File.WriteAllLines,您不需要 StreamWriter 也不需要循环。
  • @Heinzi - 看到这就是我喜欢 SO,你试图帮助别人并且经常自己学习新事物。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-13
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多