这是一个列出我在目录中的文件的代码,然后用户可以输入文件名来打开文件。
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
}
我的问题是:
如何仅列出所选目录中的可见文件? [DONE]
如何在控制台中返回每个文件前面的数字,并要求用户输入此数字而不是完整的文件名? [等待命题]
我是初学者并尝试自己学习,请不要在你的解决方案中太“专家”,我知道我当前的代码没有优化,我尝试一步一步地做,但我接受你的关于这段代码的帮助:)
感谢您的回答。
答案 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);
}