GetFiles() 不返回目录 C# 中的第一个文件名
GetFiles() not returning first file name in directory C#
我正在编写一个测试脚本以用于更大的脚本。我需要获取音乐目录中的第一个文件,以便我可以自动打开 wmplayer 并播放第一首歌曲。
如果我对文件名进行硬编码并启动进程,它就可以工作。但是,如果其他人想使用该脚本,我需要获取第一个文件名。例如,我的硬编码版本是:
Process.Start("wmplayer.exe", "C:\Users\" + username + "\Music\A_ChillstepMix.mp3");
当我尝试在我的测试脚本中获取 Music 文件夹中的第一个文件时,它返回了图片中的文件:
哪一个不正确!我究竟做错了什么?这是我的片段:
using System;
using System.IO;
using System.Linq;
namespace GetFileTest
{
class Program
{
static void Main(string[] args)
{
String username = Environment.UserName;
String path = @"C:\Users\" + username + @"\Music";
DirectoryInfo di = new DirectoryInfo(path);
string firstFile = di.GetFiles().Select(fi => fi.Name).FirstOrDefault();
Console.WriteLine(firstFile);
}
}
}
我也试过:
string firstFile = di.GetFiles()[0].ToString();
无济于事。它与单引号有关吗?
您必须将文件名排序在 select 第一个之前:
di.GetFiles().OrderBy(fi => fi.Name).Select(fi => fi.Name).FirstOrDefault();
我正在编写一个测试脚本以用于更大的脚本。我需要获取音乐目录中的第一个文件,以便我可以自动打开 wmplayer 并播放第一首歌曲。
如果我对文件名进行硬编码并启动进程,它就可以工作。但是,如果其他人想使用该脚本,我需要获取第一个文件名。例如,我的硬编码版本是:
Process.Start("wmplayer.exe", "C:\Users\" + username + "\Music\A_ChillstepMix.mp3");
当我尝试在我的测试脚本中获取 Music 文件夹中的第一个文件时,它返回了图片中的文件:
哪一个不正确!我究竟做错了什么?这是我的片段:
using System;
using System.IO;
using System.Linq;
namespace GetFileTest
{
class Program
{
static void Main(string[] args)
{
String username = Environment.UserName;
String path = @"C:\Users\" + username + @"\Music";
DirectoryInfo di = new DirectoryInfo(path);
string firstFile = di.GetFiles().Select(fi => fi.Name).FirstOrDefault();
Console.WriteLine(firstFile);
}
}
}
我也试过:
string firstFile = di.GetFiles()[0].ToString();
无济于事。它与单引号有关吗?
您必须将文件名排序在 select 第一个之前:
di.GetFiles().OrderBy(fi => fi.Name).Select(fi => fi.Name).FirstOrDefault();