C#列出没有隐藏文件的文件(Plus列表选项)

时间:2015-04-23 11:50:03

标签: c#

这是一个列出我在目录中的文件的代码,然后用户可以输入文件名来打开文件。

public static void openFile()
        {
            // List files in FormatedDocuments directory
            String[] showFiles = Directory.GetFiles("FormatedDocuments");

            int filesList = showFiles.GetUpperBound (0) + 1;
            const String folderToOpen = @"FormatedDocuments/";

            Console.WriteLine ("Here is the list of files:");
            for (int i = 0; i < filesList; i++) {
                Console.WriteLine ("\tFile : " + Path.GetFileName (showFiles [i]));
            }

            // When listing is finished, ask the user to select the file he want to open
            Console.WriteLine (@"Type the filename (With extension) you want to open:");
            String userChoice = folderToOpen + Console.ReadLine ();
            Process.Start (userChoice); // Loading with default application regarding the file extension

        }

我的问题是:

  1. 如何仅列出所选目录中的可见文件? [DONE]

  2. 如何在控制台中返回每个文件前面的数字,并要求用户输入此数字而不是完整的文件名? [等待命题]

  3. 我是初学者并尝试自己学习,请不要在你的解决方案中太“专家”,我知道我当前的代码没有优化,我尝试一步一步地做,但我接受你的关于这段代码的帮助:)

    感谢您的回答。

1 个答案:

答案 0 :(得分:2)

我找到了this

  

这应该适合你:

 DirectoryInfo directory = new DirectoryInfo(@"C:\temp"); 
 FileInfo[] files = directory.GetFiles();

 var filtered = files.Select(f => f)
                     .Where(f => (f.Attributes & FileAttributes.Hidden) == 0);

 foreach (var f in filtered) {
     Debug.WriteLine(f); 
 }