我正在使用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#控制台应用程序。
答案 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#?,如果您同时进行多个文件操作,则可能需要此链接。不要忘记之后删除文件。