[英]how to read and get specific content from a text file in c#?
我有文本文件作为 testfile.txt 内容如下:
abc.com
test/test1/testdata.gif
xyz.com
test2/test3/xyzdata.gif
我想阅读这个提到的文件并在新文件中保存为gifextfile.txt,内容应该是
testdata.gif
xyzdata.gif
我试过下面的代码:
using (var sr = new StreamReader(fileName)) {
for (int i = 1; i < line; i++)
sr.ReadLine().Where(x=>x.Equals(".gif")).SkipWhile (y=>y!='/');
有人可以帮忙吗? 提前致谢!
所以你有一个包含 URL 和图像的文本文件,你想要图像的名称?
using System.IO;
// ...
var images = File.ReadLines(fileName)
.Where(f => Path.GetExtension(f).Equals(".gif", StringComparison.InvariantCultureIgnoreCase)) // for example
.Select(f => Path.GetFileName(f));
File.WriteAllLines(newFileName, images);
编辑:最简单的方法
代码
StreamReader reader = File.OpenText(fileName);
FileInfo outputFileInfo = new FileInfo("output.txt");
StreamWriter output = outputFileInfo.CreateText();
string line = null;
while ((line = reader.ReadLine()) != null)
{
if (line.IndexOf(".gif", StringComparison.CurrentCultureIgnoreCase) > -1)
{
output.WriteLine(Path.GetFileName(line));
}
}
reader.Close();
output.Close();
优化的解决方案,灵感来自@Matthew Watson 评论
它做同样的事情,唯一的区别是在 LINQ 中使用 lambda 表达式
优化代码
var filenames = File.ReadLines(fileName)
.Where(line => line.EndsWith(".gif", StringComparison.OrdinalIgnoreCase)).Select(Path.GetFileName);
File.WriteAllLines("output.txt", filenames);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.