c#访问路径被拒绝?
我遇到了错误。我搜查了网页,但没有找到对我有意义的答案。我基本上试图创建一个临时文本文件,并写入它。这有关错误代码:c#访问路径被拒绝?
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 A first chance exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll Additional information: Access to the path 'C:\Users\Jack Givens\AppData\Local\Temp\0lpe1k5t.txt' is denied.
如果有人能告诉我什么是错的与我的代码和我需要做什么来解决它,我会很感激。边注:抱歉蹩脚的代码,我有点初学者:)
您对文件名称调用CreateDirectory
,现在File.Create
正试图调用的路径中存在一个文件夹。只需简单地删除Directory.CreateDirectory(tempFile);
行(由于该文件夹保证存在,因此不需要),并且您的代码应该可以正常工作。
您正在创建一个目录,而不是一个文件。您无法以文件形式打开目录。
Directory.CreateDirectory(tempFile);
您刚刚创建了一个目录,其名称以“* .txt”结尾。
然后您尝试创建具有完全相同路径的文件。但那不可能。
除了Scott写的内容之外,你应该改变所有你在方法中写“目录”的地方来改为说“文件”。它与目录真的没什么关系,所以你不想在那里留下误导性的方法和变量名称。 – 2014-10-17 20:27:50
啊,我没有意识到我正在创建两个相同的文件。非常感谢! – Jack 2014-10-17 20:41:46
@Jack你不创建两个相同的文件,你在创建一个目录时想要创建一个文件之前创建的文件的名称。 – 2014-10-17 20:53:22