C# 获取路径中所有文件的名称
我收到一个错误访问路径。。。尝试从指定路径读取文件时被拒绝。演示错误的代码如下所示:C# 获取路径中所有文件的名称,c#,C#,我收到一个错误访问路径。。。尝试从指定路径读取文件时被拒绝。演示错误的代码如下所示: string path = "D:\\Study\\Прога 4 семестр\\Курсач\\tests"; StreamReader sr = new StreamReader(path); while(!sr.EndOfStream) { string s = Path.GetFileNameWithoutExtension(path); listBox1.Items.Add(s);
string path = "D:\\Study\\Прога 4 семестр\\Курсач\\tests";
StreamReader sr = new StreamReader(path);
while(!sr.EndOfStream)
{
string s = Path.GetFileNameWithoutExtension(path);
listBox1.Items.Add(s);
}
sr.Close();
发生错误的代码到底有什么问题?如何实现目标?用于获取目录中的所有文件,然后将每个文件路径投影到文件名:
var names = Directory.EnumerateFiles(path)
.Select(f => Path.GetFileNameWithoutExtension(f));
甚至更短的方式:
Directory.EnumerateFiles(path).Select(Path.GetFileNameWithoutExtension);
用于获取目录中的所有文件,然后将每个文件路径投影到文件名:
var names = Directory.EnumerateFiles(path)
.Select(f => Path.GetFileNameWithoutExtension(f));
甚至更短的方式:
Directory.EnumerateFiles(path).Select(Path.GetFileNameWithoutExtension);
不幸的是,您使用的语法不正确
StreamReader
将读取文件,但不会检索文件。您应该使用System.IO
中的目录
功能
例如:
这将实际检索文件数据
第二个例子:
var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var file = Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories)
.Select(Path.GetFileName);
Microsoft开发者网络上有一些很棒的文章,介绍了从系统中检索文件或目录的不同方法。不幸的是,您使用的语法不正确
StreamReader
将读取文件,但不会检索文件。您应该使用System.IO
中的目录
功能
例如:
这将实际检索文件数据
第二个例子:
var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var file = Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories)
.Select(Path.GetFileName);
Microsoft Developer Network提供了一些很棒的文章,介绍了从系统中检索文件或目录的不同方法。您可以使用它的方法GetFiles(String)(+2重载)
枚举和处理旧版本.NET Framework上的文件
string path = "D:\\Study\\Прога 4 семестр\\Курсач\\tests";
string[] fileNames = Directory.GetFiles(path);
for(int i = 0; i < fileNames.Length; i++)
{
string fileName = Path.GetFileNameWithoutExtension(path + "\\" + fileNames[i]);
listBox1.Items.Add(fileName);
}
string path=“D:\\Study\\ПППСа4аСССа\\КСаСа\\tests”;
string[]fileNames=Directory.GetFiles(路径);
for(int i=0;i
您可以使用它的方法GetFiles(String)(+2重载)
枚举和处理旧版本.NET Framework上的文件
string path = "D:\\Study\\Прога 4 семестр\\Курсач\\tests";
string[] fileNames = Directory.GetFiles(path);
for(int i = 0; i < fileNames.Length; i++)
{
string fileName = Path.GetFileNameWithoutExtension(path + "\\" + fileNames[i]);
listBox1.Items.Add(fileName);
}
string path=“D:\\Study\\ПППСа4аСССа\\КСаСа\\tests”;
string[]fileNames=Directory.GetFiles(路径);
for(int i=0;i
您打开了一个流,但从未使用它…?您试图打开一个流到文件夹,而不是文件。您打开了一个流,但从未使用它…?您试图打开一个流到文件夹,而不是文件。这要求.NET v4或更高版本使用目录。EnumerateFiles
@BrianOliver是的,它是-这是一种新方法,它枚举文件名而不将其放入数组。NETV4是从2010年开始出现的,所以我认为这不是一个问题;我之前在那些棕色地带项目上被烧掉过,这些项目由于任何原因都无法升级,并且仍在旧版本上运行。这要求.NET v4或更高版本使用目录。EnumerateFiles
@BrianOliver是的,它是-这是一种新方法,它枚举文件名而不将其放入数组。NETV4是从2010年开始出现的,所以我认为这不是一个问题;我以前在那些棕色地带的项目上被烧掉过,这些项目无论出于什么原因都无法升级,并且仍然在旧版本上运行。