none
我用这种方式读取全部的文件/文件夹.可行么? RRS feed

  • 问题

  •  //Store the selected directory.
            private void btn_OpenFD_Click(object sender, EventArgs e) {
                FolderBrowserDialog folderBD = new FolderBrowserDialog();
                if(folderBD.ShowDialog() == DialogResult.OK)
                    txtFilesPath.Text = folderBD.SelectedPath;
            }
            //Start to read.
            private void btnRead_Click(object sender, EventArgs e) {
                string path = txtFilesPath.Text.Trim(); //The directory to read.
                DirectoryInfo directory = new DirectoryInfo(path);
                if(directory != null) {
                    FileSystemInfo[] files = directory.GetFileSystemInfos();
                    foreach(var file in files) {
                        if(File.Exists(file.Name)) {    //Is File.
    
                        }
                        else if(Directory.Exists(file.Name)) {  //Is Directory.
    
                        }
                        else {  //Not File or Directory.
                            throw new ArgumentException("未知!");
                        }
                    }
    
                }
            }
    //这是我在 Winform 用递归的方式去读取指定路径下的全部文件/文件夹:
    
    FileSystemInfo[] files = directory.GetFileSystemInfos();
    
    //我见很多人都是这样子:
    
    // 取得指定路径下所有符合条件的文件
    string[] strFiles = Directory.GetFiles(strDir, strFilePattern);
    
    // 取得指定路径下所有目录
     string[] strDirs = Directory.GetDirectories(strDir);
    
    //我不用别人的这种方式可以么,因为这种方式不是要遍历"两次"分别获的 "File" 和 "Directory"么...
    但是当我用:
    FileSystemInfo[] files = directory.GetFileSystemInfos();
    去试图访问的时候,发现有些文件夹不可访问...



    2013年6月12日 12:00

答案

全部回复