2011-09-20 3 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 (문자열)가 아닌 GetFiles (문자열)입니다. 문제의 해결책이 될 수도 있습니다. – Jehof

답변

3

GetFiles는 "보안 중요"로 표시되어 있으므로 사용자 코드에서 사용할 수 없습니다.

대신 EnumerateFiles 메서드를 사용하는 것이 좋습니다. GetFiles sooo. NET 1.0, EnumerateFiles은 훨씬 더 매끄 럽습니다. 전체 프레임 워크에서조차도 이전 Array 반환 API를 피하려고합니다.

+0

대체 솔루션은 다음과 같습니다. Dim files = From i in Directory.EnumerateFiles (경로) – someonewhowillnotbemiss

+0

@someonewhowillnotbemiss : Dim 파일과 다른 것은하지 않습니다. = Directory.EnumerateFiles (경로)'. 이것은 For Each를 수행하기에 충분합니다. – AnthonyWJones

+0

네, 맞습니다. – someonewhowillnotbemiss

0

내가 아는 한 Silverlight OOB를 사용하여 전체 하드 드라이브에 직접 액세스 할 수 없습니다.

신뢰할 수있는 환경에서 실행, 당신은 사용자 폴더에 구체적으로 내 문서, MyMusic, 내 그림 및 MyVideos 폴더 만 파일에 액세스 할 수 있습니다 : 실버 사이트에서 인용

. 이는 보안 포인트가 보기에서 의미가 있지만 제한적입니다. 사용자가 임의의 위치에서 데이터 을 드래그 할 수있게하려고합니다. 현재 위와 같이 위의 위치 이외에서 파일 을 삭제하려고 시도하면 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

관련 문제