如何重命名和保存已在列表中的文件
How to rename and save files which are already on the list
我的应用程序具有读取文件名并将其逐个显示在 DataGridView 中的第一列中的功能。我想要做的是,如果用户在其原始名称旁边的第二列中输入新名称,然后按 'save as' 按钮,文件将按照新名称的顺序保存为新输入的名称列表。
我没有绑定数据库之类的东西。
我的猜测是,如果用户单击另存为按钮,它会调用每个新命名块的代码,并将该代码带到 'save as' 函数中。但我不知道如何实现它。也许我的猜测是完全错误的;你可以给点建议,让我找到正确的方法!
恳请您的帮助!
这是我的代码
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Word(*.docx)| *.docx|PPT(*.pptx)|*.pptx|PDF(*.pdf)|*.pdf|Alle Dateien(*.*)|*.*";
ofd.Multiselect = true;
string ndn = "";//neue Dateinamen
bool umlaut, pdf, wasserzeichen;
int kopien;
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] selectedFiles = ofd.SafeFileNames;
for (int i = 0; i < ofd.FileNames.Count() - 1; i++)
{
dataGridView1.Rows.Add(selectedFiles[i]);
dataGridView1.Rows[i].Cells["Dateinamen"].Value.ToString();
dataGridView1.Rows[i].Cells["Neue Dateinamen"].Value.ToString(); // Here I tried to save values of new names
dataGridView1.Rows[i].Cells["Kopien"].Value.ToString();
dataGridView1.Rows[i].Cells["Wasserzeichen"].Value.ToString();
dataGridView1.Rows[i].Cells["Umlaut"].Value.ToString();
dataGridView1.Rows[i].Cells["PDF"].Value.ToString();
}
}
private void button7_Click(object sender, EventArgs e) //Save as
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "Word(*.docx)| *.docx|PPT(*.pptx)|*.pptx|PDF(*.pdf)|*.pdf|Alle Dateien(*.*)|*.*";
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.CheckFileExists = true;
saveFileDialog1.CheckPathExists = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
}
}
}
}
为保存按钮尝试以下代码
private void SaveWithName_Click(object sender, EventArgs e)
{
int row = dataGridView1.CurrentCell.RowIndex;
string OldName = Path.Combine(FilesPath, dataGridView1.Rows[row].Cells[0].Value.ToString());
string NewName = Path.Combine(FilesPath, dataGridView1.Rows[row].Cells[1].Value.ToString()) ;
System.IO.File.Copy(OldName, NewName);
}
变量 FilesPath 是一个 public 字符串。此变量将包含所选文件所在的目录名称。查看读取文件列表的按钮的代码示例
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] selectedFiles = ofd.SafeFileNames;
FilesPath = Path.GetDirectoryName(ofd.FileName);
label1.Text = FilesPath;
for (int i = 0; i < ofd.FileNames.Count(); i++)
{
dataGridView1.Rows.Add(selectedFiles[i]);
}
}
在那里您可以看到填充变量 FilesPath 的行。
我的应用程序具有读取文件名并将其逐个显示在 DataGridView 中的第一列中的功能。我想要做的是,如果用户在其原始名称旁边的第二列中输入新名称,然后按 'save as' 按钮,文件将按照新名称的顺序保存为新输入的名称列表。
我没有绑定数据库之类的东西。
我的猜测是,如果用户单击另存为按钮,它会调用每个新命名块的代码,并将该代码带到 'save as' 函数中。但我不知道如何实现它。也许我的猜测是完全错误的;你可以给点建议,让我找到正确的方法!
恳请您的帮助!
这是我的代码
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Word(*.docx)| *.docx|PPT(*.pptx)|*.pptx|PDF(*.pdf)|*.pdf|Alle Dateien(*.*)|*.*";
ofd.Multiselect = true;
string ndn = "";//neue Dateinamen
bool umlaut, pdf, wasserzeichen;
int kopien;
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] selectedFiles = ofd.SafeFileNames;
for (int i = 0; i < ofd.FileNames.Count() - 1; i++)
{
dataGridView1.Rows.Add(selectedFiles[i]);
dataGridView1.Rows[i].Cells["Dateinamen"].Value.ToString();
dataGridView1.Rows[i].Cells["Neue Dateinamen"].Value.ToString(); // Here I tried to save values of new names
dataGridView1.Rows[i].Cells["Kopien"].Value.ToString();
dataGridView1.Rows[i].Cells["Wasserzeichen"].Value.ToString();
dataGridView1.Rows[i].Cells["Umlaut"].Value.ToString();
dataGridView1.Rows[i].Cells["PDF"].Value.ToString();
}
}
private void button7_Click(object sender, EventArgs e) //Save as
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "Word(*.docx)| *.docx|PPT(*.pptx)|*.pptx|PDF(*.pdf)|*.pdf|Alle Dateien(*.*)|*.*";
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.CheckFileExists = true;
saveFileDialog1.CheckPathExists = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
}
}
}
}
为保存按钮尝试以下代码
private void SaveWithName_Click(object sender, EventArgs e)
{
int row = dataGridView1.CurrentCell.RowIndex;
string OldName = Path.Combine(FilesPath, dataGridView1.Rows[row].Cells[0].Value.ToString());
string NewName = Path.Combine(FilesPath, dataGridView1.Rows[row].Cells[1].Value.ToString()) ;
System.IO.File.Copy(OldName, NewName);
}
变量 FilesPath 是一个 public 字符串。此变量将包含所选文件所在的目录名称。查看读取文件列表的按钮的代码示例
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] selectedFiles = ofd.SafeFileNames;
FilesPath = Path.GetDirectoryName(ofd.FileName);
label1.Text = FilesPath;
for (int i = 0; i < ofd.FileNames.Count(); i++)
{
dataGridView1.Rows.Add(selectedFiles[i]);
}
}
在那里您可以看到填充变量 FilesPath 的行。