C# 使用c将浏览过的文件保存到预定义的文件夹#
我正在使用c#开发一个WinForm应用程序。我正在使用按钮浏览图像文件(.jpeg或.bmp)。当用户浏览文件并单击“确定”时,单击另一个“继续或更新”按钮,我希望浏览的文件应重命名并保存到预定义的目录中,默认情况下,所有图像文件都将保存在该目录中,而无需太多用户交互C# 使用c将浏览过的文件保存到预定义的文件夹#,c#,winforms,C#,Winforms,我正在使用c#开发一个WinForm应用程序。我正在使用按钮浏览图像文件(.jpeg或.bmp)。当用户浏览文件并单击“确定”时,单击另一个“继续或更新”按钮,我希望浏览的文件应重命名并保存到预定义的目录中,默认情况下,所有图像文件都将保存在该目录中,而无需太多用户交互 我怎样才能做到这一点?我使用openFileDialog浏览文件,但不知道还能做什么。您可以使用file.Copy()方法来完成。只需将预定义目录和新文件名作为目标参数 有关更多信息,请参阅 在复制方法上。首先,您必须实现一个可
我怎样才能做到这一点?我使用openFileDialog浏览文件,但不知道还能做什么。您可以使用file.Copy()方法来完成。只需将预定义目录和新文件名作为目标参数 有关更多信息,请参阅
在复制方法上。首先,您必须实现一个可以生成唯一文件名的复制功能:
private void CopyWithUniqueName(string source,
string targetPath,
string targetFileName)
{
string fileName = Path.GetFileNameWithoutExtension(targetFileName);
string extension = Path.GetExtension(targetFileName);
string target = File.Exists(Path.Combine(targetPath, targetFileName);
for (int i=1; File.Exists(target); ++i)
{
target = Path.Combine(targetPath, String.Format("{0} ({1}){2}",
targetFileName, i, extension));
}
File.Copy(source, target);
}
然后您可以使用它,假设defaultTargetPath
是复制图像的默认目标文件,而defaultFileName
是图像的默认文件名:
void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() != DialogResult.OK)
return;
CopyWithUniqueName(openFileDialog1.FileName,
defaultTargetPath, defaultFileName);
}
如果有多个选择:
foreach (string fileName in openFileDialog1.FileNames)
{
CopyWithUniqueName(fileName,
defaultTargetPath, defaultFileName);
}
您将得到以下结果(假设defaultFileName
为“Image.png”):
源目标
A.png Image.png
B.png图像(1).png
C.png图像(2.png)
有两种方法可以做到这一点。一种方法是使用file.copy复制文件,另一种方法是将图像流加载到程序中并保存到其他地方。你希望用户能够编辑图像,还是仅仅是一个直接副本?一个直接副本,但有理想的名称,我的意思是我需要根据命名约定重命名文件!我发布的代码演示了如何使用File.Copy。我可以将完整路径指定为第二个参数吗?是的,第一个和第二个参数可以使用绝对路径或相对路径。
foreach (string fileName in openFileDialog1.FileNames)
{
CopyWithUniqueName(fileName,
defaultTargetPath, defaultFileName);
}
Source Target
A.png Image.png
B.png Image (1).png
C.png Image (2).png