C# 如何删除file.txt文件的最后一行
我正在使用C# 如何删除file.txt文件的最后一行,c#,winforms,visual-studio-2010,C#,Winforms,Visual Studio 2010,我正在使用StreamReader读取文件.txt,并使用streamWriter编写 我想知道是否可以只删除最后插入的行? 我正在插入行,但有时其中一个插入是string.empty。然后转到我创建的异常`。。。在这个异常中,我想删除刚才插入的那一行 但是我重新创建文件,或者类似的东西,我只需要删除/擦除/删除最后一行。我可以这样做吗 麦可德:如果你们有别的办法,我会非常感激的 使用(StreamWriter streamW=newstreamwriter(fileFinal,true)) {
StreamReader
读取文件.txt
,并使用streamWriter
编写
我想知道是否可以只删除最后插入的行?
我正在插入行,但有时其中一个插入是
string.empty。然后转到我创建的
异常`。。。在这个异常中,我想删除刚才插入的那一行
但是我重新创建文件,或者类似的东西,我只需要删除/擦除/删除最后一行。我可以这样做吗
麦可德:如果你们有别的办法,我会非常感激的
使用(StreamWriter streamW=newstreamwriter(fileFinal,true))
{
if(contador==numeriocampos)
{
康塔多=0;
}
foreach (string s in clb_frente_impressao.Items)
{
if (camposEscritos >= 10 * numeroCampos)
{
streamW.WriteLine();
streamW.WriteLine("-------------------------------------------------------");
streamW.Write(nomearquivo + x.ToString());
streamW.WriteLine();
x++;
camposEscritos = 0;
}
if (contador >= clb_frente_impressao.Items.Count)
{
contador = 0;
}
switch (s)
{
case "numero_carteira":
if (campos_obrigatorios.Contains("numero_carteira") && campo.numero_carteira == "")
{
dados_inexistentes++;
skipToNext = true;
break;
}
else if (campo.numero_carteira != "")
{
string aux = "";
qtdZeros = Txt_qtdZeros.Text;
if (qtdZeros == "")
{
qtdZeros = "8";
}
while (campo.numero_carteira.Length < Convert.ToInt32(qtdZeros))
{
campo.numero_carteira = campo.numero_carteira.Insert(0, "0");
}
if (usaC == "sim")
{
campos += @"\" + "*C" + aux + campo.numero_carteira + "*" + @"\";
camposEscritos++;
}
else
{
campos += @"\" + "*" + aux + campo.numero_carteira + "*" + @"\";
camposEscritos++;
}
if (contador == 0)
{
streamW.WriteLine();
streamW.Write("{0,-15}", campo.numero_carteira);
contador++;
}
else
{
streamW.Write("{0,-15}", campo.numero_carteira);
contador++;
}
}
break;
case "matricula":
if (campos_obrigatorios.Contains("matricula") && campo.matricula == "")
{
dados_inexistentes++;
skipToNext = true;
break;
}
camposEscritos++;
if (campo.matricula != "")
{
if (campo.tipo_pessoa == "3")
{
campos += @"\" + campo.matricula + "-" + campo.cod_dependente + @"\";
}
else
{
campos += @"\" + campo.matricula + @"\";
}
}
if (contador > 0)
{
if (campo.cod_dependente != "")
{
streamW.Write("{0,-10}", campo.matricula + "-" + campo.cod_dependente);
contador++;
}
else
{
streamW.Write("{0,-10}", campo.matricula);
contador++;
}
}
else
{
if (campo.cod_dependente != "")
{
streamW.WriteLine();
streamW.Write("{0,-10}", campo.matricula + "-" + campo.cod_dependente);
contador++;
}
else
{
streamW.WriteLine();
streamW.Write("{0,-10}", campo.matricula);
contador++;
}
}
break;
if (skipToNext) break;
} //Final do ForEach
if (skipToNext)
{
//HERE IS WHERE I WANT TO DELETE THE LAST LINE THAT WAS WRITED BY streamW
continue;
}
foreach(clb_frente_impressao.Items中的字符串s)
{
如果(camposEscritos>=10*numeroCampos)
{
streamW.WriteLine();
streamW.WriteLine(“----------------------------------------------------------------”;
streamW.Write(nomerquivo+x.ToString());
streamW.WriteLine();
x++;
camposEscritos=0;
}
如果(contador>=clb_frente_impressao.Items.Count)
{
康塔多=0;
}
开关
{
“第一卡泰拉”案:
if(campo_obrigatorios.Contains(“numerio_carteira”)&&campo.numerio_carteira==“”)
{
dados_不存在++;
skipToNext=true;
打破
}
else if(campo.numero_carteira!=“”)
{
字符串aux=“”;
qtdZeros=Txt_qtdZeros.Text;
如果(qtdZeros==“”)
{
qtdZeros=“8”;
}
而(campo.numero_carteira.Length0)
{
如果(campo.cod_dependente!=“”)
{
写(“{0,-10}”,campo.matricula+“-”+campo.cod_dependente);
contador++;
}
其他的
{
写(“{0,-10}”,campo.matricula);
contador++;
}
}
其他的
{
如果(campo.cod_dependente!=“”)
{
streamW.WriteLine();
写(“{0,-10}”,campo.matricula+“-”+campo.cod_dependente);
contador++;
}
var lines = File.ReadAllLines(pathToFile);
File.WriteAllLines(pathToFile, lines.Take(lines.Length - 1));