ファイルをディレクトリにコピーして、特定の形式に名前を変更したい。ただし、ファイル名がすでに存在する場合は、ファイル拡張子の前に{1}、{2}、または{3}を追加する必要があります。
私のコードはファイルの名前を変更してコピーし、filename.pdfなどの目的の形式に名前を付けました。重複がないかチェックすると、filename1.pdfに名前が変更されました。しかし、もう一度コピーしようとすると、「ファイルはすでに存在します」というエラーが表示されましたが、filename02.pdfという名前を付けたいと思いました。
plsは誰かが私を助けることができます。
これが私がこれまでに書いたコードです。
{
string fileSource, filesToCopy, target, nextTarget;
string sourceDir = @"C:\HCP_PDFs";
string destinationDir = @"C:\RenamedHcpPdfs";
DirectoryInfo di = new DirectoryInfo(destinationDir);
// create the directory if it dosnt exist
if (!Directory.Exists(destinationDir))
{
Directory.CreateDirectory(destinationDir);
}
foreach (string myFiles in lstBoxFilenames.Items)
{
filesToCopy = myFiles;
fileSource = Path.Combine(sourceDir, filesToCopy);
//Extract only HCP Name by splitting , removing file Extension and removing HCP ID
string hcp = filesToCopy.Split('_')[0];
string hcpCd = filesToCopy.Split('_')[1];
string hcpID = filesToCopy.Split('_')[2];
string hcpName = String.Format((filesToCopy.Split('_')[3]).Replace(".pdf", ""));
//combine the HCP ID, HCP name and date
target = Path.Combine(destinationDir, hcp + "{" + hcpCd + "~" + hcpID + "}" + hcpName + "{2013_03_14}" + ".pdf");
// if file exists in directory then rename and increment filename by 1
int i = +1 ;
nextTarget = Path.Combine(destinationDir, hcp + "{" + hcpCd + "~" + hcpID + "}" + hcpName + "{2013_03_14}" + i + ".pdf");
if (File.Exists(target))
{
File.Copy(fileSource, nextTarget);
break;
}
//if file does not exist, rename
else
{
File.Copy(fileSource, target);
}
}
}