다음을 통해 공유


FileIOPermission.GetPathList 메서드

지정된 FileIOPermissionAccess가 있는 모든 파일과 디렉터리를 가져옵니다.

네임스페이스: System.Security.Permissions
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
Public Function GetPathList ( _
    access As FileIOPermissionAccess _
) As String()
‘사용 방법
Dim instance As FileIOPermission
Dim access As FileIOPermissionAccess
Dim returnValue As String()

returnValue = instance.GetPathList(access)
public string[] GetPathList (
    FileIOPermissionAccess access
)
public:
array<String^>^ GetPathList (
    FileIOPermissionAccess access
)
public String[] GetPathList (
    FileIOPermissionAccess access
)
public function GetPathList (
    access : FileIOPermissionAccess
) : String[]

매개 변수

반환 값

access 매개 변수에서 지정한 액세스 권한이 부여되는 파일과 디렉터리의 경로를 포함하는 배열입니다.

예외

예외 형식 조건

ArgumentException

access가 유효한 FileIOPermissionAccess 값이 아닌 경우

- 또는 -

access는 두 가지 형식 이상의 파일 액세스를 나타내는 AllAccess이나 어떤 형식의 파일 액세스도 나타내지 않는 NoAccess 중 하나인 경우

설명

이 메서드를 사용하여 현재 사용 권한의 상태를 가져옵니다. ReadWrite 액세스 권한의 상태를 모두 가져오려면 이 메서드를 두 번 호출해야 합니다.

참고

access 매개 변수는 FileIOPermissionAccess의 값으로 제한됩니다. 이 값은 한 가지 형식의 파일 액세스를 나타냅니다. 그 값은 Read, Write, AppendPathDiscovery입니다. NoAccessAllAccess는 한 가지 형식의 파일 액세스를 나타내지 않으므로 access의 값으로 사용할 수 없습니다.

예제

Private Function SetGetPathListDemo() As Boolean
    Try
        Console.WriteLine("********************************************************" & ControlChars.Lf)

        Dim fileIOPerm1 As FileIOPermission
        Console.WriteLine("Creating a FileIOPermission with AllAccess rights for 'C:\Examples\Test\TestFile.txt")
        fileIOPerm1 = New FileIOPermission(FileIOPermissionAccess.AllAccess, "C:\Examples\Test\TestFile.txt")
        Console.WriteLine("Adding 'C:\Temp' to the write access list, and " & ControlChars.Lf & " 'C:\Examples\Test' to read access.")
        fileIOPerm1.AddPathList(FileIOPermissionAccess.Write, "C:\Temp")
        fileIOPerm1.AddPathList(FileIOPermissionAccess.Read, "C:\Examples\Test")
        Dim paths As String() = fileIOPerm1.GetPathList(FileIOPermissionAccess.Read)
        Console.WriteLine("Read access before SetPathList = ")
        Dim path As String
        For Each path In paths
            Console.WriteLine((ControlChars.Tab & path))
        Next path
        Console.WriteLine("Setting the read access list to " & ControlChars.Lf & "'C:\Temp'")
        fileIOPerm1.SetPathList(FileIOPermissionAccess.Read, "C:\Temp")
        paths = fileIOPerm1.GetPathList(FileIOPermissionAccess.Read)
        Console.WriteLine("Read access list after SetPathList = ")
        For Each path In paths
            Console.WriteLine((ControlChars.Tab & path))
        Next path

        paths = fileIOPerm1.GetPathList(FileIOPermissionAccess.Write)
        Console.WriteLine("Write access list after SetPathList = ")
        For Each path In paths
            Console.WriteLine((ControlChars.Tab & path))
        Next path

        Dim pathList() As String
        pathList = fileIOPerm1.GetPathList(FileIOPermissionAccess.AllAccess)

    Catch e As ArgumentException
        ' FileIOPermissionAccess.AllAccess can not be used as a parameter for GetPathList.
        Console.WriteLine(("An ArgumentException occurred as a result of using AllAccess. " & "This property cannot be used as a parameter in GetPathList " & "because it represents more than one type of file variable access. : " & ControlChars.Lf & e.ToString()))
    End Try

    Return True
End Function 'SetGetPathListDemo
private bool SetGetPathListDemo()
{
    try
    {
        Console.WriteLine("********************************************************\n");

        FileIOPermission fileIOPerm1;
        Console.WriteLine("Creating a FileIOPermission with AllAccess rights for 'C:\\Examples\\Test\\TestFile.txt");
        fileIOPerm1 = new FileIOPermission(FileIOPermissionAccess.AllAccess, "C:\\Examples\\Test\\TestFile.txt");
        Console.WriteLine("Adding 'C:\\Temp' to the write access list, and \n 'C:\\Examples\\Test' to read access.");
        fileIOPerm1.AddPathList(FileIOPermissionAccess.Write, "C:\\Temp");
        fileIOPerm1.AddPathList(FileIOPermissionAccess.Read, "C:\\Examples\\Test");
        string[] paths = fileIOPerm1.GetPathList(FileIOPermissionAccess.Read);
        Console.WriteLine("Read access before SetPathList = ");
        foreach (string path in paths)
        {
            Console.WriteLine("\t" + path);
        }
        Console.WriteLine("Setting the read access list to \n'C:\\Temp'");
        fileIOPerm1.SetPathList(FileIOPermissionAccess.Read, "C:\\Temp");
        paths = fileIOPerm1.GetPathList(FileIOPermissionAccess.Read);
        Console.WriteLine("Read access list after SetPathList = ");
        foreach (string path in paths)
        {
            Console.WriteLine("\t" + path);
        }

        paths = fileIOPerm1.GetPathList(FileIOPermissionAccess.Write);
        Console.WriteLine("Write access list after SetPathList = ");
        foreach (string path in paths)
        {
            Console.WriteLine("\t" + path);
        }

        Console.WriteLine("Write access = \n" +
            fileIOPerm1.GetPathList(FileIOPermissionAccess.AllAccess));

    }
    catch (ArgumentException e)
    {
        // FileIOPermissionAccess.AllAccess can not be used as a parameter for GetPathList.
        Console.WriteLine("An ArgumentException occurred as a result of using AllAccess. "
            + "This property cannot be used as a parameter in GetPathList "
            + "because it represents more than one type of file variable access. : \n" + e);
    }

    return true;
}
bool SetGetPathListDemo()
{
   try
   {
      Console::WriteLine( "********************************************************\n" );
      FileIOPermission^ fileIOPerm1;
      Console::WriteLine( "Creating a FileIOPermission with AllAccess rights for 'C:\\Examples\\Test\\TestFile.txt" );
      
      fileIOPerm1 = gcnew FileIOPermission( FileIOPermissionAccess::AllAccess,"C:\\Examples\\Test\\TestFile.txt" );
      
      Console::WriteLine( "Adding 'C:\\Temp' to the write access list, and \n 'C:\\Examples\\Test' to read access." );
      fileIOPerm1->AddPathList( FileIOPermissionAccess::Write, "C:\\Temp" );
      fileIOPerm1->AddPathList( FileIOPermissionAccess::Read, "C:\\Examples\\Test" );
      array<String^>^paths = fileIOPerm1->GetPathList( FileIOPermissionAccess::Read );
      Console::WriteLine( "Read access before SetPathList = " );
      IEnumerator^ myEnum = paths->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         String^ path = safe_cast<String^>(myEnum->Current);
         Console::WriteLine( "\t{0}", path );
      }

      Console::WriteLine( "Setting the read access list to \n'C:\\Temp'" );
      fileIOPerm1->SetPathList( FileIOPermissionAccess::Read, "C:\\Temp" );
      paths = fileIOPerm1->GetPathList( FileIOPermissionAccess::Read );
      Console::WriteLine( "Read access list after SetPathList = " );
      IEnumerator^ myEnum1 = paths->GetEnumerator();
      while ( myEnum1->MoveNext() )
      {
         String^ path = safe_cast<String^>(myEnum1->Current);
         Console::WriteLine( "\t{0}", path );
      }

      paths = fileIOPerm1->GetPathList( FileIOPermissionAccess::Write );
      Console::WriteLine( "Write access list after SetPathList = " );
      IEnumerator^ myEnum2 = paths->GetEnumerator();
      while ( myEnum2->MoveNext() )
      {
         String^ path = safe_cast<String^>(myEnum2->Current);
         Console::WriteLine( "\t{0}", path );
      }

      Console::WriteLine( "Write access = \n{0}", fileIOPerm1->GetPathList( FileIOPermissionAccess::AllAccess ) );
   }
   catch ( ArgumentException^ e ) 
   {
      
      // FileIOPermissionAccess.AllAccess can not be used as a parameter for GetPathList.
      Console::WriteLine( "An ArgumentException occurred as a result of using AllAccess. This property cannot be used as a parameter in GetPathList because it represents more than one type of file variable access. : \n{0}", e );
   }

   return true;
}

// AllAccess
// AddPathList adds access for the specified files and directories to the 
// existing state of the permission.
// SetPathList sets the specified access to the specified files and 
// directories, replacing the existing state of the permission.
// GetPathList gets all files and directories that have the specified 
// FileIOPermissionAccess.
private boolean SetGetPathListDemo() 
{
    try {
        Console.WriteLine("****************************" 
            + "****************************\n");
        FileIOPermission fileIOPerm1;
        
        Console.WriteLine("Creating a FileIOPermission with AllAccess " 
            + "rights for 'C:\\Examples\\Test\\TestFile.txt");
        fileIOPerm1 = new FileIOPermission(
            FileIOPermissionAccess.AllAccess, 
            "C:\\Examples\\Test\\TestFile.txt");

        Console.WriteLine("Adding 'C:\\Temp' to the write access " 
            + "list, and \n " +    "'C:\\Examples\\Test' to read access.");
        fileIOPerm1.AddPathList(FileIOPermissionAccess.Write, "C:\\Temp");
        fileIOPerm1.AddPathList(FileIOPermissionAccess.Read, 
            "C:\\Examples\\Test");
        String paths[] = fileIOPerm1.GetPathList(
            FileIOPermissionAccess.Read);
        Console.WriteLine("Read access before SetPathList = ");
        for (int iCtr = 0; iCtr < paths.length; iCtr++) {
            String path = paths[iCtr];
            Console.WriteLine(("\t" + path));
        }

        Console.WriteLine("Setting the read access list to \n'C:\\Temp'");
        fileIOPerm1.SetPathList(FileIOPermissionAccess.Read, "C:\\Temp");
        paths = fileIOPerm1.GetPathList(FileIOPermissionAccess.Read);
        Console.WriteLine("Read access list after SetPathList = ");
        for (int iCtr = 0; iCtr < paths.length; iCtr++) {
            String path = paths[iCtr];
            Console.WriteLine(("\t" + path));
        }            
        
        paths = fileIOPerm1.GetPathList(FileIOPermissionAccess.Write);
        Console.WriteLine("Write access list after SetPathList = ");
        for (int iCtr = 0; iCtr < paths.length; iCtr++) {
            String path = paths[iCtr];
            Console.WriteLine(("\t" + path));
        }            
        Console.WriteLine(("Write access = \n" 
            + fileIOPerm1.GetPathList(FileIOPermissionAccess.AllAccess)));
    }
    catch(ArgumentException e){
        // FileIOPermissionAccess.AllAccess can not be used as a 
        // parameter for GetPathList.
        Console.WriteLine(("An ArgumentException occurred as a result " 
            + "of using AllAccess. " + "This property cannot be used as a " 
            + "parameter in GetPathList " 
            + "because it represents more than one type of " 
            + "file variable access. : \n" + e));
    }
    return true ;
} //SetGetPathListDemo   

플랫폼

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

참고 항목

참조

FileIOPermission 클래스
FileIOPermission 멤버
System.Security.Permissions 네임스페이스