我正在使用大量数据创建一个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'。'
有什么想法吗?
答案 0 :(得分:2)
您不能在文件名中使用斜杠****。
以下是Naming Files, Paths, and Namespaces的摘录
使用当前代码页中的任何字符作为名称,包括Unicode字符和扩展字符集(128–255)中的字符,但以下各项除外:
以下保留字符:
(大于)
:(冒号)
整数值零,有时也称为ASCII NUL字符。
整数表示形式在1到31之间的字符,但允许这些字符的备用数据流除外。有关文件流的更多信息,请参见文件流。
目标文件系统不允许的任何其他字符。