2011-09-20 84 views
2

我正在使用Silverlight 4 OOB &提升信任度。System.IO.Directory.Getfiles Silverlight 4不工作

我需要获得特定目录&所有文件名填充的对象列表(串)

编译器会引发对.Getfiles()方法的错误“未找到方法”。

Dim files() As String = System.IO.Directory.Getfiles(Path) 'this line is failing.. 

帮助!

+2

不知道你是否在你的问题中犯了一个错误。但方法名称是GetFiles(string)而不是Getfiles(string)。也许它也是你的问题的解决方案 – Jehof

回答

3

GetFiles被标记为“安全关键”,因此不能从你的代码中使用。

您将需要改为使用EnumerateFiles方法。 GetFiles是sooo .NET 1.0,EnumerateFiles是非常冷静,即使在你想要的完整框架,避免这个旧的数组返回API,如果可以的话。

+0

下面是一个替代解决方案:Dim files = From i In Directory.EnumerateFiles(Path) – someonewhowillnotbemiss

+0

@someonewhowillnotbemiss:这与'Dim files = Directory.EnumerateFiles(路径)'。这足以执行“For Each”。 – AnthonyWJones

+0

是的,你是对的 – someonewhowillnotbemiss

0

就我所知,您无法直接使用Silverlight OOB访问整个硬盘。

Silverlight的网站报价:

当在受信任的环境中运行,您只能访问文件 用户文件夹,特别是我的文档,MyMusic,MyPictures和 MyVideos文件夹。尽管这从安全点 来看是有意义的,但它是有限的。您想让用户从任何位置拖动他们的数据 。就目前而言,如果您尝试从上述以外的位置删除文件 ,Silverlight将抛出 安全错误。

请参阅此链接了解如何使用Silverlight的OOB硬盘驱动器的工作细节: http://www.silverlight.net/learn/overview/out-of-browser-applications/advanced-silverlight-out-of-browser-introduction#Exercise3

+0

嗨,无论哪种方式IO.Directory没有GetFiles()方法 – someonewhowillnotbemiss

+0

@someonewhowillnotbemiss,我已经纠正了我的答案。 – MichaelS

+0

@MichaelS:在编译时抛出错误,而不是运行时,所以硬盘访问的限制在这里不算。 – Jehof

相关问题