c#读取txt文件
场景:C#读取TXT文件,并重定名
C#读取TXT文件,并重命名
我想用的方法是:读取TXT文件中照片的名字(每行一个名字已经写好的),把每个照片的名字都存到数组里面。问题是怎么把数组里面的名字牵连到每一个照片,替换掉照片的名字(名字和照片按顺序是一一对应的)。
例子:TXT文件中的名字是这样的

想要的结果是:
求大神帮忙,小弟只是初学C#,想做个小软件自己用。如果有大神能帮我把代码写出来,小弟再次拜谢!!!
------解决思路----------------------
------解决思路----------------------
如何读取TXT文件、批量更改文件名
//读取txt文件
private void button1_Click(object sender, EventArgs e)
{
try
{
openFileDialog1.Filter = "文本文件(*.txt)
------解决思路----------------------
*.txt";
openFileDialog1.ShowDialog();
textBox1.Text = openFileDialog1.FileName;
StreamReader SReader = new StreamReader(textBox1.Text, Encoding.Default);
textBox2.Text = SReader.ReadToEnd();
}
catch { MessageBox.Show("请选择文件"); }
}
//批量更改文件名
private void ChangeName()
{
int flag = 0;
try
{
toolStripProgressBar1.Minimum = 0;
toolStripProgressBar1.Maximum = listView1.Items.Count - 1;
for (int i = 0; i < listView1.Items.Count; i++)
{
string path = listView1.Items[i].SubItems[4].Text;
string sourcePath = path + listView1.Items[i].SubItems[0].Text;
string newPath = path + listView1.Items[i].SubItems[1].Text;
File.Copy(sourcePath, newPath);
File.Delete(sourcePath);
toolStripProgressBar1.Value = i;
listView1.Items[i].SubItems[0].Text = listView1.Items[i].SubItems[1].Text;
listView1.Items[i].SubItems[6].Text = "√成功";
}
}//codego.net/tags/1/1/
catch(Exception ex)
{
flag++;
MessageBox.Show(ex.Message);
}
finally
{
tsslError.Text = flag.ToString() + " 个错误";
}
}
//开始批量更名
private void 更名ToolStripMenuItem_Click(object sender, EventArgs e) {
if (listView1.Items.Count > 0)
{
for (int i = 0; i < listView1.Items.Count; i++)
{
listView1.Items[i].SubItems[6].Text = "";
}
tsslError.Text = "";
td = new Thread(new ThreadStart(ChangeName));
td.Start();
}
}
------解决思路----------------------
代码我就不写了,思路给你:
string[] filepaths;
前行读取txt
读取一行把这行加到filepaths中
然后
int i=1;
foreach(string item in filepaths)
{
File.Move(item,新路径+"\\"+i.ToString()+".jpg";
}
------解决思路----------------------
其实你这就是保存个状态(图片和数据对应的状态)而已。
那怎么才能找到图片呢? 路径。所以你只要吧路径和数据对应就可以了。
如何对应呢? 方式很多。比如使用序列化直接保存数组对象或XML保存关系等等等,这些都是以文件为的载体保存的。
用TXT保存的话,你就要知道如何读,且读的结果和写的时候一致。 这就要你定义一个格式了。如: 数字=文件路径
的形式保存,一行一个。读的时候使用ReadLine ,并以“=”切断字符串,获取数字和路径。
所以文件的读写你要看看,这个应该是最简单的I0操作了
C#读取TXT文件,并重命名
我想用的方法是:读取TXT文件中照片的名字(每行一个名字已经写好的),把每个照片的名字都存到数组里面。问题是怎么把数组里面的名字牵连到每一个照片,替换掉照片的名字(名字和照片按顺序是一一对应的)。
例子:TXT文件中的名字是这样的
想要的结果是:
求大神帮忙,小弟只是初学C#,想做个小软件自己用。如果有大神能帮我把代码写出来,小弟再次拜谢!!!
------解决思路----------------------
foreach (var item in File.ReadAllLines("1.txt").Zip(Directory.GetFiles("c:\\images", "*.*"), (newname, oldname) => new { newname, oldname }))
{
File.Move(oldname, string.Concat(Path.GetDirectoryName(oldname), "\", newname, Path.GetExtension(oldname)));
}
------解决思路----------------------
如何读取TXT文件、批量更改文件名
//读取txt文件
private void button1_Click(object sender, EventArgs e)
{
try
{
openFileDialog1.Filter = "文本文件(*.txt)
------解决思路----------------------
*.txt";
openFileDialog1.ShowDialog();
textBox1.Text = openFileDialog1.FileName;
StreamReader SReader = new StreamReader(textBox1.Text, Encoding.Default);
textBox2.Text = SReader.ReadToEnd();
}
catch { MessageBox.Show("请选择文件"); }
}
//批量更改文件名
private void ChangeName()
{
int flag = 0;
try
{
toolStripProgressBar1.Minimum = 0;
toolStripProgressBar1.Maximum = listView1.Items.Count - 1;
for (int i = 0; i < listView1.Items.Count; i++)
{
string path = listView1.Items[i].SubItems[4].Text;
string sourcePath = path + listView1.Items[i].SubItems[0].Text;
string newPath = path + listView1.Items[i].SubItems[1].Text;
File.Copy(sourcePath, newPath);
File.Delete(sourcePath);
toolStripProgressBar1.Value = i;
listView1.Items[i].SubItems[0].Text = listView1.Items[i].SubItems[1].Text;
listView1.Items[i].SubItems[6].Text = "√成功";
}
}//codego.net/tags/1/1/
catch(Exception ex)
{
flag++;
MessageBox.Show(ex.Message);
}
finally
{
tsslError.Text = flag.ToString() + " 个错误";
}
}
//开始批量更名
private void 更名ToolStripMenuItem_Click(object sender, EventArgs e) {
if (listView1.Items.Count > 0)
{
for (int i = 0; i < listView1.Items.Count; i++)
{
listView1.Items[i].SubItems[6].Text = "";
}
tsslError.Text = "";
td = new Thread(new ThreadStart(ChangeName));
td.Start();
}
}
------解决思路----------------------
代码我就不写了,思路给你:
string[] filepaths;
前行读取txt
读取一行把这行加到filepaths中
然后
int i=1;
foreach(string item in filepaths)
{
File.Move(item,新路径+"\\"+i.ToString()+".jpg";
}
------解决思路----------------------
其实你这就是保存个状态(图片和数据对应的状态)而已。
那怎么才能找到图片呢? 路径。所以你只要吧路径和数据对应就可以了。
如何对应呢? 方式很多。比如使用序列化直接保存数组对象或XML保存关系等等等,这些都是以文件为的载体保存的。
用TXT保存的话,你就要知道如何读,且读的结果和写的时候一致。 这就要你定义一个格式了。如: 数字=文件路径
的形式保存,一行一个。读的时候使用ReadLine ,并以“=”切断字符串,获取数字和路径。
所以文件的读写你要看看,这个应该是最简单的I0操作了