C#中逐行读取每一行的内容==进行文件名对比!不一样就删除文件!
C#中逐行读取每一行的内容==进行文件名对比!不一样就删除文件!1)逐行读取记事本中的内容"文件名列表.txt"2)读取"待清理文件夹"中的所有文件名.3)作对比只要"文...
C#中逐行读取每一行的内容==进行文件名对比!不一样就删除文件!
1) 逐行读取记事本中的内容 " 文件名列表.txt "
2) 读取 " 待清理文件夹 " 中的所有文件名.
3) 作对比 只要" 文件名列表.txt " 中记录内容不符合 就删除掉 " 待清理文件夹 " 中的文件!
--------------------------------------------------------------------------------------------------------------
批处理中我是这样执行的:
for /f "tokens=*" %%i in ('dir/b 待清理文件夹') do findstr /i %%i 文件名列表.txt||del "待清理文件夹\%%i"
换成C# 我就不会写了:
我用:
----------------------------------------------------------------------------------------------------------
try
{
using (StreamReader sr = new StreamReader("文件名列表.txt", UnicodeEncoding.GetEncoding("GB2312")))
{
String line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line); //没想到这么做比较我先做了个打印在这里!
}
}
}
catch (Exception e)
{
Console.WriteLine("出错啦!亲,文件名列表呢?");
Console.WriteLine(e.Message);
}
Console.ReadKey();
-----------------------------------------------------------------------------------
请大神帮帮我`初学者!不会写!
PS: " 文件名列表.txt " 中的内容为:
C#学习笔记.txt
你一定要幸福.Mp3
爱情公寓4.rmvb
##############
空格空格空格空格
等等... 展开
1) 逐行读取记事本中的内容 " 文件名列表.txt "
2) 读取 " 待清理文件夹 " 中的所有文件名.
3) 作对比 只要" 文件名列表.txt " 中记录内容不符合 就删除掉 " 待清理文件夹 " 中的文件!
--------------------------------------------------------------------------------------------------------------
批处理中我是这样执行的:
for /f "tokens=*" %%i in ('dir/b 待清理文件夹') do findstr /i %%i 文件名列表.txt||del "待清理文件夹\%%i"
换成C# 我就不会写了:
我用:
----------------------------------------------------------------------------------------------------------
try
{
using (StreamReader sr = new StreamReader("文件名列表.txt", UnicodeEncoding.GetEncoding("GB2312")))
{
String line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line); //没想到这么做比较我先做了个打印在这里!
}
}
}
catch (Exception e)
{
Console.WriteLine("出错啦!亲,文件名列表呢?");
Console.WriteLine(e.Message);
}
Console.ReadKey();
-----------------------------------------------------------------------------------
请大神帮帮我`初学者!不会写!
PS: " 文件名列表.txt " 中的内容为:
C#学习笔记.txt
你一定要幸福.Mp3
爱情公寓4.rmvb
##############
空格空格空格空格
等等... 展开
3个回答
展开全部
// 获取目录信息
DirectoryInfo dirInfo = new DirectoryInfo("待清理文件夹");
// 获取目录下所有的文件信息
FileInfo[] fileInfos = dirInfo.GetFiles();
List<string> listOffileName = new List<string>();
using (StreamReader sr = new StreamReader("文件名列表.txt", UnicodeEncoding.GetEncoding("GB2312")))
{
String line;
while ((line = sr.ReadLine()) != null)
{
// 搜集文件名列表
listOffileName.Add(line);
}
}
foreach (var file in fileInfos)
{
// 若不在文件名列表.txt中
if (listOffileName.FirstOrDefault(obj => obj == file.Name) == null)
{
//删除文件
file.Delete();
}
}
Good luck with u;
展开全部
static void Main(string[] args)
{
FileStream fs = new FileStream("abc.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("gb2312"));
string[] allFiles = Directory.GetFiles("E:\\待清理文件夹");
string s = "";
s = sr.ReadLine();
while (s != null)
{
Console.WriteLine(s);
bool isExists = false;
for (int i = 0; i < allFiles.Length; i++)
{
if (Path.GetFileName(allFiles[i]) == s)
{
isExists = true;
break;
}
}
if (!isExists) //如果不存在就删除
{
File.Delete("E:\\待清理文件夹" + s);
}
s = sr.ReadLine();
}
sr.Close();
fs.Close();
Console.ReadLine();
}
{
FileStream fs = new FileStream("abc.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("gb2312"));
string[] allFiles = Directory.GetFiles("E:\\待清理文件夹");
string s = "";
s = sr.ReadLine();
while (s != null)
{
Console.WriteLine(s);
bool isExists = false;
for (int i = 0; i < allFiles.Length; i++)
{
if (Path.GetFileName(allFiles[i]) == s)
{
isExists = true;
break;
}
}
if (!isExists) //如果不存在就删除
{
File.Delete("E:\\待清理文件夹" + s);
}
s = sr.ReadLine();
}
sr.Close();
fs.Close();
Console.ReadLine();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说实在,不太明白你说的什么意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询