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
表示单一类型的文件访问的 FileIOPermissionAccess 值。
返回值
一个包含文件和目录的路径的数组,用户被授予对这些文件和目录 access 参数所指定的访问权限。
异常
异常类型 | 条件 |
---|---|
access 不是有效的 FileIOPermissionAccess 值。 - 或 - |
备注
使用此方法获取当前权限的状态。若要同时获取 Read 和 Write 访问的状态,需要对此方法进行两次调用。
提示
access 参数限制为 FileIOPermissionAccess 的值,它表示单一类型的文件访问。这些值为 Read、Write、Append 和 PathDiscovery。access 可接受的值不包括 NoAccess 和 AllAccess,它们不表示单一类型的文件访问。
示例
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 命名空间