FileStream不让我在本地机器上创建文件?

时间:2010-10-25 13:28:43

标签: c# permissions filestream

我正在使用FileStream将FTP服务器的信息下载到我的C:\驱动器上的目录中。出于某种原因,即使我甚至尝试将目录权限设置为“Everyone”访问权限,但它给了我这个例外:

  

System.UnauthorizedAccessException:拒绝访问路径'C:\ tmpfolder''

这是为什么?这是我的代码的摘录。

byte[] fileData = request.DownloadData(dataMap.GetString("ftpPath") + "/" + content);
file = new FileStream(@"C:\tmpfolder", FileMode.Create, FileAccess.Write);
downloadedlocation = file.ToString();
file.Write(fileData, 0, fileData.Length);

此外,我的程序不在ASP.NET中,只是一个C#控制台应用程序。

2 个答案:

答案 0 :(得分:4)

如果存储文件的位置无关紧要,请尝试

using System.IO;
.
.
.
string tempFile = Path.GetTempFileName();

这将在您的帐户临时文件夹中创建一个临时文件。不关心权限; - )

答案 1 :(得分:0)

我猜你没有写c:\的写权限,你尝试创建一个名为tmpfolder的文件。

如果c:\中存在名为tmpfolder的文件夹,请将代码更改为

file = new FileStream(@"C:\tmpfolder\myfile.tmp", FileMode.Create, FileAccess.Write);

HTH

马里奥

编辑:进一步说明:查看此链接How to create a temporary file (for writing to) in C#?,如果您同时进行多个文件操作,则可能需要此链接。不要忘记之后删除文件。