创建参数命名的文本文件 C#

Creating parameter named text files C#

我必须创建一个目录,然后在该目录中创建一个文本文件,名称来自参数。例如。 _year 是一个参数,我试过:

var _root = "C:\Users\~\DirichletProcessClustering\Results";
var _clusterFilename = _year.ToString() + "cluster.txt";
var _path = Path.Combine(_root, _year.ToString(), _clusterFilename);  

if(!Directory.Exists(_path))
{
   Directory.CreateDirectory(_path);
}

// output topk file
TextWriter _twClus = File.CreateText(_path);   
foreach (// loop )  
{ 
   _twClus.WriteLine("Cluster");  
   //... rest of the implementation...
}  

此代码在指定路径创建一个名为 2005 的文件夹,然后在该文件夹内有另一个名为 2005cluster.txt 的文件夹,而我想创建一个名为 2005cluster.txt 的文本文件在文件夹 2005 内。

TextWriter _twClus = File.CreateText(_path);

试试这个,让你的路径在文件名前有一个斜杠:

var _root = "C:\Users\~\DirichletProcessClustering\Results\";

从您的路径中删除文件名:

var _path = Path.Combine(_root, _year.ToString()); 

要定义文件名,您必须将这行代码修改为:

TextWriter _twClus = File.CreateText(Path.Combine(_path, _clusterFilename));  

因为你是单独定义文件名,你可以试试这个:

var _root = "C:\Users\~\DirichletProcessClustering\Results";
var _clusterFilename = _year.ToString() + "cluster.txt";
var _path = Path.Combine(_root, _year.ToString());  

if(!Directory.Exists(_path))
{
   Directory.CreateDirectory(_path);
}

// output topk file
TextWriter _twClus = File.CreateText(Path.Combine(_path, _clusterFilename));   
foreach (// loop )  
{ 
   _twClus.WriteLine("Cluster");  
   //... rest of the implementation...
}