没有权限写入文件

时间:2012-04-05 11:01:10

标签: c#

我知道有很多关于这个问题的答案,但我还没有找到解决方案。

这是一个WPF应用程序,它从我的桌面运行,我是这台计算机的唯一用户。

我已尝试保存到桌面,TEMP,C:,Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

但是我尝试过的目录都没有用,所以我有点迷失/困惑。

FileStream file = new FileStream("C:\\Users\\<username>\\AppData\\Local\\Temp",FileMode.OpenOrCreate, 
                  FileAccess.Write, 
                  FileShare.ReadWrite);

StreamWriter sr = new StreamWriter(file);
sr.WriteLine(data);

sr.Close();

编辑:

代码错误,对不起,我现在想出来了:

StreamWriter sr = new StreamWriter("C:\\Users\\Mike\\AppData\\Local\\Temp\\test.txt");
sr.WriteLine(data);
sr.Close();

3 个答案:

答案 0 :(得分:0)

如果您需要在用户PC上为您的应用程序保存一些文件,最好的选择是在AppData文件夹中执行此操作。这是所有程序都应该写出他们的临时文件的地方(无论是否使用它)你可以通过在开始菜单运行行中键入%appdata%来访问它,如下所示:

Environment.SpecialFolder.ApplicationData

在你的c#应用程序中。希望这能帮助你。

答案 1 :(得分:0)

您的本地文件夹很可能包含名为&#39; TEMP&#39;的文件夹。这将使您的新FileStream失败。此外,您应该为&#39;用户名&#39;设置一个真实的用户名,但这可能只是从其他地方复制的文本。

但是试试这种方式

string destPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string destFile = Path.Combine(destPath, "myTempFile.txt");
FileStream file = new FileStream(destFile,FileMode.OpenOrCreate,FileAccess.Write, FileShare.ReadWrite);  

答案 2 :(得分:0)

像这样写你的文件

//this is what you want to write
    string whatiWantToWrite = "Hello, i am a noob!";
       //This is how you write your file 
                    System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\\path\\to\\Desktop\\myfile.txt");
                    file.WriteLine(whatiWantToWrite);
                    file.Close();