Silverlight如何在本地读取目录

问题描述:

我是Silverlight的新手,我正在尝试执行目录内容的目录列表。但是,当此代码的第一个列表运行时,它会引发异常:Silverlight如何在本地读取目录

应用程序本身在浏览器内部运行。

文件操作不允许。访问 到路径'C:\ Program Files \ AppName'是 被拒绝。

我检查了权限,他们是可读的,所以我不知道为什么它不工作。

DirectoryInfo di = new DirectoryInfo(@"C:\Program Files\AppName"); 

    try 
    { 
     if (di.Exists) 
     { 
      Console.WriteLine("That path exists already."); 
     } 
    } 
    catch (Exception e) 
    { 
     Console.WriteLine("The process failed: {0}", e.ToString()); 
    } 
    finally { } 
+0

假设您在浏览器中运行此内容,您可能刚刚击中了沙箱的墙壁。 :-) – Manfred 2010-09-01 03:17:36

Silverlight不允许你访问任何你想要的旧目录。 Silverlight 4增加了在用户配置文件下访问某些众所周知的路径的功能,但只能在浏览器外的高级信任应用程序中访问。

Silverlight可能不是您想要用于此目的的技术。相反,看看WPF。

+0

该应用程序本身就是Silverlight,我不认为我可以随意抛出一些WPF调用,因为它像在Silverlight中所说的那样是沙盒。有没有其他办法可以使它起作用? – 2010-09-01 03:38:28

+1

如果那时silverlight会是一个强大的糟糕的ria平台(你想要做的事情有很大的安全隐患) – 2010-09-01 03:43:31

+0

@Matt && @Josh:感谢您对Silverlight的洞察。是的,我同意安全影响。我想我会将这些文件包含在程序集中并以这种方式访问​​它们。 – 2010-09-01 03:47:36

如果要在silverlight中保存/加载文件,并且您的应用拥有这些文件,则可以使用独立存储。

silverlight isolated storage example

通常,这是在本地存储跨会话的数据,或存储用户设置是有用的。就像Josh的回答所说,如果您需要访问其他应用程序的文件,则无法解决您的问题。