我正在尝试阅读文件文件的内容,这些文件文件可以放在或不放在我使用DotNetZip库实现此目的的文件夹中
结构是这样的
条件1:
ZipFile/Folder(any name)/List of TXT Files.
条件2:
ZipFile/List of TXT Files.
所有文本文件都有一行数字数据,看起来像这样。
的abc.txt
1000232
1212154
4454457
我还需要在DataTable的单个列中的所有TXT文件中列出这些数字
这是我迄今为止所尝试过的。
string pathtoZip = pathtotheZipfile;
using (var zip = ZipFile.Read(pathtoZip))
{
int totalEntries = zip.Entries.Count;
ZipEntry e = null;
foreach (ZipEntry f in zip.Entries)
{
if (f.FileName.Contains("/"))
{
e = f;
break;
}
}
if (e.IsDirectory && e != null)
{
}
else
{
foreach (ZipEntry g in zip.Entries)
{
}
}
}
将文本文件转换为A DaTaTable
public DataTable TexttoDataTable(string NewFilePath)
{
DataTable dt = new DataTable();
var lines = File.ReadAllLines(NewFilePath);
dt.Columns.Add();
for (int i = 1; i < lines.Count(); i++)
{
DataRow dr = dt.NewRow();
string[] values = lines[i].Split(new char[] { ' ' });
if (values.Length<=1)
{
values = lines[i].Split(new char[] { ',' });
}
for (int j = 0; j < values.Count(); j++)
dr[j] = values[j];
dt.Rows.Add(dr);
}
return dt;
}
Zip只能有一个文件夹,但文件夹的名称可以不同。
答案 0 :(得分:0)
static void Main(string[] args)
{
var dt = new DataTable("Numbers");
dt.Columns.Add(new DataColumn { DataType = typeof(int), ColumnName = "Num" });
using (var zip = ZipFile.OpenRead(@"PATH_TO_ZIP"))
{
var entry = zip.GetEntry("PATH_TO_FILE_IN_ZIP");
{
using (var stream = entry.Open())
{
using (var sr = new StreamReader(stream))
{
while(!sr.EndOfStream)
{
string line = sr.ReadLine();
var row = dt.NewRow();
row["Num"] = line;
dt.Rows.Add(row);
}
}
}
}
}
}