本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

Directory.GetFileSystemEntries 方法 (String)

 

返回指定路径中的所有文件和子目录的名称。

命名空间:   System.IO
程序集:  mscorlib(mscorlib.dll 中)

public static string[] GetFileSystemEntries(
	string path
)

参数

path

要搜索的目录的相对或绝对路径。此字符串不区分大小写。

返回值

Type: System.String[]

指定目录中的文件和子目录的名称的数组;如果找不到任何文件或子目录,则为空数组。

Exception Condition
UnauthorizedAccessException

调用方没有所要求的权限。

ArgumentException

path 是一个零长度字符串,仅包含空白或者包含一个或多个无效字符。可以使用 GetInvalidPathChars 来查询无效字符。

ArgumentNullException

pathnull

PathTooLongException

指定的路径、文件名或者两者都超出了系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。

IOException

path 是一个文件名。

DirectoryNotFoundException

指定的路径无效(例如,它位于未映射的驱动器上)。

返回的文件和目录名称的顺序不能保证 ;使用Sort方法是否需要特定的排序顺序。

EnumerateFileSystemEntriesGetFileSystemEntries方法的行为有所不同,如下所示: 当您使用EnumerateFileSystemEntries,您可以之前开始枚举的项的集合,则返回整个集合 ;当您使用GetFileSystemEntries,您必须等待的条目,然后才能访问该数组要返回整个数组。因此,当您正在使用多个文件和目录、EnumerateFiles效率更高。

此方法等同于GetFileSystemEntries用星号 (*) 指定为搜索模式。

path参数允许指定相对或绝对路径信息。相对路径信息被解释为相对于当前的工作目录。若要获取当前工作目录,请参阅GetCurrentDirectory

path参数不区分大小写。

通用 I/O 任务的列表,请参阅通用 I/O 任务

下面的示例使用GetFileSystemEntries到控制台数组中的每一个字符串方法来使用的所有文件和子目录中的用户指定的位置并将打印名称填充的字符串数组。该示例配置为对此方法的常见的捕捉所有错误。

using System;

namespace GetFileSystemEntries
{
    class Class1 
    {
        static void Main(string[] args) 
        {
            Class1 snippets = new Class1();

            string path = System.IO.Directory.GetCurrentDirectory();
            string filter = "*.exe";

            snippets.PrintFileSystemEntries(path);
            snippets.PrintFileSystemEntries(path, filter);		
            snippets.GetLogicalDrives();
            snippets.GetParent(path);
            snippets.Move("C:\\proof", "C:\\Temp");
        }


        void PrintFileSystemEntries(string path) 
        {

            try 
            {
                // Obtain the file system entries in the directory path.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path); 

                foreach (string str in directoryEntries) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException) 
            {
                System.Console.WriteLine("The path encapsulated in the " + 
                    "Directory object does not exist.");
            }
        }
        void PrintFileSystemEntries(string path, string pattern) 
        {
            try 
            {
                // Obtain the file system entries in the directory
                // path that match the pattern.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path, pattern); 

                foreach (string str in directoryEntries) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException) 
            {
                System.Console.WriteLine("The path encapsulated in the " + 
                    "Directory object does not exist.");
            }
        }

        // Print out all logical drives on the system.
        void GetLogicalDrives() 
        {
            try 
            {
                string[] drives = System.IO.Directory.GetLogicalDrives();

                foreach (string str in drives) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (System.IO.IOException) 
            {
                System.Console.WriteLine("An I/O error occurs.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
        }
        void GetParent(string path) 
        {
            try 
            {
                System.IO.DirectoryInfo directoryInfo =
                    System.IO.Directory.GetParent(path);

                System.Console.WriteLine(directoryInfo.FullName);
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, or " +
                    "contains invalid characters.");
            }
        }
        void Move(string sourcePath, string destinationPath) 
        {
            try 
            {
                System.IO.Directory.Move(sourcePath, destinationPath);
                System.Console.WriteLine("The directory move is complete.");
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters.");	
            }
            catch (System.IO.IOException) 
            {
                System.Console.WriteLine("An attempt was made to move a " +
                    "directory to a different " +
                    "volume, or destDirName " +
                    "already exists."); 
            }
        }
    }
}

FileIOPermission

用于访问当前目录的路径信息。关联的枚举:FileIOPermissionAccess.PathDiscovery

Universal Windows Platform
10 后可用
.NET Framework
1.1 后可用
Silverlight
2.0 后可用
Windows Phone Silverlight
7.0 后可用
返回页首
显示: