C#读取目录中的文件
我有一个应用程序,可以读取一个名为“words.CSV”的CSV文件。我的新要求是1)在读取之前,需要确保目录中只有一个CSV文件。2) 它应该读取扩展名为“.CSV”的任何文件,而不仅仅是“words.CSV”(在满足条件1之后)。希望这有意义? 有人能帮忙吗C#读取目录中的文件,c#,C#,我有一个应用程序,可以读取一个名为“words.CSV”的CSV文件。我的新要求是1)在读取之前,需要确保目录中只有一个CSV文件。2) 它应该读取扩展名为“.CSV”的任何文件,而不仅仅是“words.CSV”(在满足条件1之后)。希望这有意义? 有人能帮忙吗 public class VM { public VM() { Words = LoadWords(fileList[0]); } public IEnumerable<strin
public class VM
{
public VM()
{
Words = LoadWords(fileList[0]);
}
public IEnumerable<string> Words { get; private set; }
string[] fileList = Directory.GetFiles(@"Z:\My Documents\", "*.csv");
private static IEnumerable<string> LoadWords(String fileList)
{
List<String> words = new List<String>();
if (fileList.Length == 1)
{
try
{
foreach (String line in File.ReadAllLines(fileList))
{
string[] rows = line.Split(',');
words.AddRange(rows);
}
}
catch (Exception e)
{
System.Windows.MessageBox.Show(e.Message);
}
return words;
}
}
}
公共类虚拟机
{
公共虚拟机()
{
Words=LoadWords(文件列表[0]);
}
公共IEnumerable单词{get;private set;}
string[]fileList=Directory.GetFiles(@“Z:\My Documents\”,“*.csv”);
私有静态IEnumerable加载字(字符串文件列表)
{
列表单词=新列表();
如果(fileList.Length==1)
{
尝试
{
foreach(文件中的字符串行.ReadAllLines(文件列表))
{
string[]rows=line.Split(',');
words.AddRange(行);
}
}
捕获(例外e)
{
System.Windows.MessageBox.Show(e.Message);
}
返回单词;
}
}
}
您可以使用此代码获取文件夹中所有csv文件的列表:
string[] fileList = Directory.GetFiles( @"Z:\My Documents\", "*.csv");
因此,为了满足您的条件,这应该做到:
string[] fileList = Directory.GetFiles( @"Z:\My Documents\", "*.csv");
if( fileList.Length == 1 )
{
//perform your logic here
}
Linq的SingleOrDefault运算符将确保存在具有给定模式的唯一文件,否则它将返回null您基本上可以使用相同的代码。用你的代码替换我上面的评论,而不是
filePath
,你必须使用fileList[0]
来获取文件的路径。谢谢,我在将字符串转换为字符串[]时遇到了很多错误,你看到了同样的情况吗?在哪一行你会看到这个错误?请把你代码中的那一行贴在这里。我已经编辑了上面的代码,向你展示了我所拥有的,你能帮我吗?谢谢这里的问题是:私有静态IEnumerable加载字(字符串文件列表)
DirectoryInfo di = new DirectoryInfo(@"Z:\My Documents");
// Get a reference to each file in that directory.
FileInfo[] fiArr = di.GetFiles();
if(fiArr.Length ==1)
{
FileInfo fri = fiArr[0];
//use fri.Extension to check for csv
//process as required
}
FileInfo file = new DirectoryInfo(@"Z:\My Documents")
.EnumerateFiles("*.csv")
.SingleOrDefault();
if (file != null)
{
//do your logic
}