次の方法で共有


FileIOPermission.SetPathList メソッド (FileIOPermissionAccess, String)

指定したファイルまたはディレクトリに対して指定したアクセス権を設定し、アクセス許可の既存の状態を置換します。

Overloads Public Sub SetPathList( _
   ByVal access As FileIOPermissionAccess, _   ByVal path As String _)
[C#]
public void SetPathList(FileIOPermissionAccessaccess,stringpath);
[C++]
public: void SetPathList(FileIOPermissionAccessaccess,String* path);
[JScript]
public function SetPathList(
   access : FileIOPermissionAccess,path : String);

パラメータ

  • access
    FileIOPermissionAccess 値のビットごとの組み合わせ。
  • path
    ファイルまたはディレクトリの絶対パス。

例外

例外の種類 条件
ArgumentException access パラメータが、 FileIOPermissionAccess の有効値ではありません。

または

path パラメータが、有効な文字列ではありません。

または

path パラメータがファイルまたはディレクトリへの絶対パスを指定していませんでした。

解説

指定した種類のアクセスに対する現在のアクセス許可の直前の状態が上書きされます。C:\temp に対するアクセスを Read に設定するコードを次に示します。

 
SetPathList(FileIOPermissionAccess.Read, "C:\\temp");
      
[Visual Basic] 
SetPathList(FileIOPermissionAccess.Read, "C:\temp")
      

アクセスの種類が同じではないため、このアクセスは次のコードでは上書きされません。

 
SetPathList(FileIOPermissionAccess.Write, "C:\\documents");
      
[Visual Basic] 
SetPathList(FileIOPermissionAccess.Write, "C:\documents")
      

使用例

 
' 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 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


[C#] 
// 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 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;        
    }

[C++] 
// 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:
bool SetGetPathListDemo()
{
    try
    {
        Console::WriteLine(S"********************************************************\n");

        FileIOPermission* fileIOPerm1;
        Console::WriteLine(S"Creating a FileIOPermission with AllAccess rights for 'C:\\Examples\\Test\\TestFile.txt");
        fileIOPerm1 = new FileIOPermission(FileIOPermissionAccess::AllAccess, S"C:\\Examples\\Test\\TestFile.txt");
        Console::WriteLine(S"Adding 'C:\\Temp' to the write access list, and \n 'C:\\Examples\\Test' to read access.");
        fileIOPerm1->AddPathList(FileIOPermissionAccess::Write, S"C:\\Temp");
        fileIOPerm1->AddPathList(FileIOPermissionAccess::Read, S"C:\\Examples\\Test");
        String* paths[] = fileIOPerm1->GetPathList(FileIOPermissionAccess::Read);
        Console::WriteLine(S"Read access before SetPathList = ");
        IEnumerator* myEnum = paths->GetEnumerator();
        while (myEnum->MoveNext())
        {
            String* path = __try_cast<String*>(myEnum->Current);
            Console::WriteLine(S"\t{0}", path);
        }
        Console::WriteLine(S"Setting the read access list to \n'C:\\Temp'");
        fileIOPerm1->SetPathList(FileIOPermissionAccess::Read, S"C:\\Temp");
        paths = fileIOPerm1->GetPathList(FileIOPermissionAccess::Read);
        Console::WriteLine(S"Read access list after SetPathList = ");
        IEnumerator* myEnum1 = paths->GetEnumerator();
        while (myEnum1->MoveNext())
        {
            String* path = __try_cast<String*>(myEnum1->Current);
            Console::WriteLine(S"\t{0}", path);
        }

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

        Console::WriteLine(S"Write access = \n{0}", fileIOPerm1->GetPathList(FileIOPermissionAccess::AllAccess));

    }
    catch (ArgumentException* e)
    {
        // FileIOPermissionAccess.AllAccess can not be used as a parameter for GetPathList.
        Console::WriteLine(S"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;        
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

FileIOPermission クラス | FileIOPermission メンバ | System.Security.Permissions 名前空間 | FileIOPermission.SetPathList オーバーロードの一覧