我創建了一個樣本的Silverlight Web項目System.IO.FileInfo扔訪問被拒絕例外本地文件
和我收到「訪問被拒絕」當我這樣做:
string fileName = "map.gif";
FileInfo fileInfo = new FileInfo(fileName);
如何我可以讓Web項目訪問這個文件夾/文件嗎?
我添加圖像到我的項目,真是一片空白這裏....
我創建了一個樣本的Silverlight Web項目System.IO.FileInfo扔訪問被拒絕例外本地文件
和我收到「訪問被拒絕」當我這樣做:
string fileName = "map.gif";
FileInfo fileInfo = new FileInfo(fileName);
如何我可以讓Web項目訪問這個文件夾/文件嗎?
我添加圖像到我的項目,真是一片空白這裏....
你不訪問文件您放置在使用FileInfo
對象的項目。相反,你創建一個Uri來訪問它。
從您的問題中不清楚您已將該文件放入哪個項目。如果已將其放置在Silverlight項目中,則應以Xap中的內容爲結尾。在這種情況下,你可以使用獲得StreamResourceInfo
它: -
StreamResourceInfo gifContentInfo = Application.GetResourceStream(new Uri("map.gif", UriKind.Relative));
現在,你可以得到與該文件內容: -
Stream gifStream = gifContentInfo.Stream;
在另一方面,如果你已經把文件中的網頁項目它將成爲網站上的標準靜態文件。因此,您需要執行典型的WebClient
下載才能獲取它。
我認爲你要去這個麻煩,因爲它的一個Gif文件;你知道它們不支持作爲圖像。
在Silverlight中不能使用文件系統之外的Isolated Storage
你需要給到ASP文件訪問.NET用戶
檢查了這一點: http://www.codeproject.com/KB/aspnet/Ahmed_Kader.aspx
或用途,其asp.net爲您提供 的特殊文件夾... APP_DATA
應該有你需要的權利...
我假設你正試圖訪問本地文件系統中的文件。
如果是這樣,您不能訪問那樣的文件。 Silverlight沒有您期望的訪問權限。如果您想在運行時將文件添加到Silverlight應用程序中。您需要安裝Silverlight 4,使用提升版的瀏覽器運行瀏覽器。這也有一定的侷限性。您只能訪問「我的文檔」,「圖片」,「音樂」等特殊文件夾中的文件。有關以這種方式訪問文件的更多信息。您可以在Channel 9 MSDN中的Silverlight 4高級版本上查看John's tutorials。
我會懷疑你的FileInfo的用法了。以下是使用簡單的拖放功能獲取文件數據的示例代碼。
private void list_Drop(object sender, DragEventArgs e)
{
FileInfo[] files = (FileInfo[])e.Data.GetData(DataFormats.FileDrop);
for(int i=0;i<files.Length;i++)
textblock.Text += files[i].Name;
}
您可以獲取文件的屬性,例如「Name」。你不會遇到任何拒絕訪問錯誤。你不能訪問諸如「DirectoryName」,「FullName」等屬性。原因是出於安全原因它們被聲明爲SecurityCritical屬性。提升權限的好處在於,您可以訪問本地文件系統(特殊文件夾)以無任何例外地訪問FullName和DirectoryName屬性。
希望這有助於
問題是更多的Silverlight比ASP相關... – Oren 2010-08-13 18:17:14