【问题标题】:Creating parameter named text files C#创建参数命名的文本文件 C#
【发布时间】:2016-06-12 19:36:29
【问题描述】:

我必须创建一个目录,然后在该目录中创建一个名称来自参数的文本文件。例如。 _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 的文件夹,而我想在文件夹 2005 内创建一个名为 2005cluster.txt 的文本文件。

  • 我在创建正确的文件夹和文件名时哪里出错了?
  • 在下面提到的行生成 UnauthorizedAccessException 代码,即访问被拒绝。为什么会这样?

TextWriter _twClus = File.CreateText(_path);

【问题讨论】:

  • 所以您要做的就是创建一个目录,然后在您刚刚创建的目录中创建一个文件?
  • 是的,但是带有年份名称和文件的目录也带有年份名称加上“集群”,例如 2005\2005cluster.txt 其中 2005 是目录,2005cluster.txt 是文件
  • 那么您是从 Windows 获取当前年份,还是允许用户传入?
  • 是的,它是一个接受_year作为参数的方法

标签: c# directory filenames unauthorizedaccessexcepti


【解决方案1】:

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

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

【讨论】:

  • Path.Combine() 完成了您所描述的艰苦工作。
  • 这里没有问什么答案,而两个项目符号是问的问题
【解决方案2】:

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

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...
}

【讨论】:

    【解决方案3】:

    从路径中删除文件名:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-07
      • 1970-01-01
      • 2019-07-20
      • 2017-09-03
      • 2020-02-03
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      相关资源
      最近更新 更多