2012-06-18 2 views
1

배경 정보 :이 프로젝트에서는 Microsoft Visual C# 2010를 사용하고자료 생성자가 제대로 해결

. System.IO.DirectoryInfo 클래스를 사용하여 디렉토리 목록을 가져 오려고합니다. 그러나 GetDirectories() 구현은 UnauthorizedAccessException 예외를 throw 할 때 함수가 실패하므로 저에게 적합하지 않습니다.

나는의 DirectoryInfo 클래스의 동일한 기능을 갖는 파생 클래스를 정의하는 DLL을 만들 좋아하지만 GetDirectories를 대체 할

() 그래서 내가 필요한 기능을 가질 수 있습니다.

문제 : 기본 생성자를 호출 할 때 내가 뭔가 잘못하고 있어야합니다

. " '개체'에는 1 개의 인수를 사용하는 생성자가 포함되어 있지 않습니다."라는 오류 메시지가 나타납니다.

using System; 
using System.IO; 

namespace CompanyName.System.IO 
{ 
    public class FlexibleDirectoryInfo : DirectoryInfo 
    { 
     public FlexibleDirectoryInfo(string path) : base(path) {} 
     [...] 

의 DirectoryInfo는 기본 생성자를 가지고 있고, 대신에 내가 할 노력하고있어처럼 문자열 매개 변수를 가지고 하나의 생성자가 없습니다. 그러나 기본 생성자가 제대로 해결되는지 확실하지 않습니다.

나는이 간단한 수정하는 느낌이 듭니다. 제발 내가 바라 보는 것을 지적 해주세요. :)

고마워요!

+1

'DirectoryInfo'는'sealed'로 표시되어 있으므로, 당신은 * 상속받을 수 없습니다. 'UnauthorizedAccessException'을 얻는다면, 권한을 얻는 방법을 찾아라! – dlev

+0

@dlev 예외를 던진 문제의 디렉터리는 C : \ Documents and Settings입니다. 아마도 프로그램의 권한을 높이는 방법을 알아낼 수는 있지만 최소한의 권한을 유지하지는 않을 것이라고 생각합니다. –

답변

3

DirectoryInfo는 봉인 된 클래스입니다. 그래서 당신은 그것으로부터 파생 될 수 없습니다. MSDN에서 :

공공 밀봉 클래스의 DirectoryInfo :

FileSystemInfo

그러나, 당신은 ( DirectoryInfo위한 슈퍼 클래스) FileSystemInfo를 상속하는 클래스를 만듭니다. 대부분의 구현을 만들어야하지만, 유일한 방법입니다.

+0

젠장, 내가 그 문서를 읽을 때 그것을 알아 차리지 못했습니다. 추측은 많이 설명합니다. 감사! –