最初に、一意のファイル名を作成できるコピー関数を実装する必要があります。
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