2

我遇到了错误。我在网上搜索过,但没有找到对我有意义的答案。我基本上是在尝试创建一个临时文本文件,然后写入它。这里是有关错误的代码:

using ( StreamWriter output = new StreamWriter(File.Create(GetTemporaryDirectory())))

和 getTemporaryDirectory 方法:

 public string GetTemporaryDirectory() {
        string tempDirectory = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
        string tempFile = Path.ChangeExtension(tempDirectory, ".txt");
        Directory.CreateDirectory(tempFile);
        return tempFile;
    }

最后但并非最不重要的错误:

dir = C:\Users\Jack Givens\AppData\Local\Temp\5ftxwy31.txt mscorlib.dll 中出现“System.UnauthorizedAccessException”类型的第一次机会异常 mscorlib.dll 中出现“System.UnauthorizedAccessException”类型的未处理异常附加信息:拒绝访问路径“C:\Users\Jack Givens\AppData\Local\Temp\0lpe1k5t.txt”。

如果有人能告诉我我的代码有什么问题以及我需要做些什么来修复它,我将不胜感激。旁注:对不起,糟糕的代码,我有点初学者:)

4

3 回答 3

5
 Directory.CreateDirectory(tempFile);

您刚刚创建了一个目录,其名称以“*.txt”结尾。

然后您尝试创建一个具有完全相同路径的文件。但这是不可能的。

于 2014-10-17T20:25:13.710 回答
3

您调用CreateDirectory文件名,因此现在File.Create尝试调用的路径中存在一个文件夹。只需简单地删除该Directory.CreateDirectory(tempFile);行(因为该文件夹保证存在,所以不需要它)并且您的代码应该可以工作。

于 2014-10-17T20:25:12.823 回答
1

您正在创建一个目录,而不是一个文件。您不能将目录作为文件打开。

于 2014-10-17T20:24:55.603 回答