如何读取资源csv文件
How to read resources csv file
我曾经在我的应用程序中使用 csv 文件
这里是原代码
string csvFile = Directory.GetCurrentDirectory() + @"\data\" + Scheme + ".csv"
DataTable dt = ReadCSV(csvFile);
dgv.DataSource = dt;
现在我想将 csv 文件作为嵌入资源
我试过了。但它不起作用
string csvFile = System.Resources.MyFile; //This is error
DataTable dt = ReadCSV(csvFile);
dgv.DataSource = dt;
我想知道如何正确获取代码运行?
如@dr.null 所说,将文件添加到菜单 Project/Properties/Resources 后,您必须在解决方案资源管理器中单击项目名称,以便可以设置操作 属性 到“内置资源”。
然后,使用类似的东西:
using System.Reflection;
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "assembly_name.Resources.yourFile.csv";
var lines = ReadLines(() => Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName), Encoding.UTF8).ToList();
其中:
public IEnumerable<string> ReadLines(Func<Stream> streamProvider, Encoding encoding)
{
using (var stream = streamProvider())
using (var reader = new StreamReader(stream, encoding))
{
string line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
}
您将拥有包含您的 csv 数据的可变行。
我曾经在我的应用程序中使用 csv 文件
这里是原代码
string csvFile = Directory.GetCurrentDirectory() + @"\data\" + Scheme + ".csv"
DataTable dt = ReadCSV(csvFile);
dgv.DataSource = dt;
现在我想将 csv 文件作为嵌入资源
我试过了。但它不起作用
string csvFile = System.Resources.MyFile; //This is error
DataTable dt = ReadCSV(csvFile);
dgv.DataSource = dt;
我想知道如何正确获取代码运行?
如@dr.null 所说,将文件添加到菜单 Project/Properties/Resources 后,您必须在解决方案资源管理器中单击项目名称,以便可以设置操作 属性 到“内置资源”。
然后,使用类似的东西:
using System.Reflection;
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "assembly_name.Resources.yourFile.csv";
var lines = ReadLines(() => Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName), Encoding.UTF8).ToList();
其中:
public IEnumerable<string> ReadLines(Func<Stream> streamProvider, Encoding encoding)
{
using (var stream = streamProvider())
using (var reader = new StreamReader(stream, encoding))
{
string line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
}
您将拥有包含您的 csv 数据的可变行。