2010-10-25 43 views
1

我正在使用FileStream將FTP服務器的信息下載到我的C:\驅動器上的目錄中。出於某種原因,即使我甚至嘗試設置目錄權限,甚至「人人」的訪問,它給了我這個例外:FileStream不讓我在本地機器上創建文件?

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

這可能看起來像一個明顯的問題,但是C:\ tmpfolder文件夾?如果是這樣,您將無法創建與該文件夾名稱完全相同的文件。 – 2010-10-25 13:31:39

+0

將您的安全權限(不是共享權限)設置爲該文件夾的用戶或每個人的完全控制文件夾? – 2010-10-25 13:32:44

+0

呃,我覺得非常愚蠢。 tmpfolder的目的是爲文件夾,然後我打算有+內容的結尾。謝謝! – Chris 2010-10-25 13:36:45

回答

4

如果它不無論身在何處存儲文件,嘗試

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

這將在您的賬戶臨時文件夾中的臨時文件。沒有關心的權限;-)

0

我猜你沒有寫權限到c:\,你嘗試創建一個名爲tmpfolder的文件。

如果存在於你的C文件夾名爲tmpfolder:\更改您的代碼

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

心連心

馬里奧

編輯:在進一步的說明:看看這個鏈接How to create a temporary file (for writing to) in C#?,你可能需要它,如果你有多個文件操作在同一時間進行。不要忘記以後刪除文件。

相關問題