新建一个名称为目录路径的文件

时间:2019-04-24 17:59:51

标签: c#

我正在使用大量数据创建一个csv文件。该文件将被推送到另一个位置,其名称将被用于放置在其所属的目录中。我需要创建文件名来模仿目录,而无需实际使用该目录。

我在下面使用,基本上“ outputDirectory”是文件应存放的位置,它后面的所有内容都必须是文件名的一部分。

String fileName = outputDirectory + DateTime.Now.ToString("yyyy-mm-hh") + "//" + app + "//" + client +"//" + site +"//" + unit + ".csv";
using (StreamWriter sw = new StreamWriter(fileName, false))
{
    foreach (AFValue AFval in AFvals)
    {
        string tagname = AFval.PIPoint.Name;
        string timestamp = AFval.Timestamp.ToString();
        string value = AFval.Value.ToString();
        var newLine = string.Format("{0},{1},{2}", tagname, timestamp, value);
        sw.Write(newLine);
        sw.Write(Environment.NewLine);
    }
}

现在,此代码将

引发异常

“找不到路径'C:\ Users \ user \ Desktop \ Output \ 2019-53-01 \ app \ client \ site \ Unit.csv'的一部分。”

我需要它在'C:\ Users \ user \ Desktop \ Output \'中创建一个名为

的文件

2019-53-01 \ app \ client \ site \ Unit.csv'。'

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您不能在文件名中使用斜杠****。

以下是Naming Files, Paths, and Namespaces的摘录

使用当前代码页中的任何字符作为名称,包括Unicode字符和扩展字符集(128–255)中的字符,但以下各项除外:

以下保留字符:

  • <(小于)
  •   

    (大于)

  • :(冒号)

  • ”(双引号)
  • /(正斜杠)
  • \(反斜杠)
  • | (垂直条或管)
  • ? (问号)
    • (星号)
  • 整数值零,有时也称为ASCII NUL字符。

  • 整数表示形式在1到31之间的字符,但允许这些字符的备用数据流除外。有关文件流的更多信息,请参见文件流。

  • 目标文件系统不允许的任何其他字符。