OpenFileDialog
選択した画像をから定義された場所にコピーする方法があり、同じ名前の画像が存在するかどうかを確認し、存在する場合はその場で名前を変更したいと思います。
これが私の方法です:
public void SaveImage(IList<AppConfig> AppConfigs, string ImageNameFilter)
{
string imgPath = AppConfigs[0].ConfigValue.ToString();
Int32 i = 0;
StringBuilder sb = new StringBuilder(selectedFileName);
while (File.Exists(imgPath + "\\" + ImageNameFilter + selectedFileName))
{
sb.Insert(i, 0);
i++;
//ImageNameFilter += (i++).ToString();
}
File.Copy(selectedFile, imgPath + "\\" + ImageNameFilter + selectedFileName);
}
ImageNameFilter
は各画像の先頭に追加されるカスタムフィルターであり、ユーザーはプレフィックスを確認するだけで、画像が何に使用されているかを認識できるようにするためにこのプレフィックスが必要です。selectedFileName
で撮影した画像の名前です。SafeFileName
つまり、次のようになります- imageName.jpeg
。
このコードにはいくつかの問題があります。まず、このように名前を変えたかったのですが、一緒にimageName1.jpeg, imageName2.jpeg, imageName3.jpeg...imageName14.jpeg..
使っていると、後も全部追加してしまいます。私が考えることができる唯一の解決策は使用することですが、私は本当に別の方法を見つけたいと思っています。selectedFileName
+=
.jpeg
regex
また、インクリメントi++
して追加すると、次の+=
ような望ましくない結果が発生します
imageName1.jpeg, imageName12.jpeg, imageName123.jpeg...imageName1234567.jpeg
。
したがって、どのようにして希望の結果を得ることができますか。ここで見られる妥協点は、デフォルトのように_
、直後にアンダースコアを追加し、最後ImageNameFilter
に追加することです。しかし、文字列の先頭に何かを追加することも、私には方法がわかりません。ご覧のとおり、 +を試しましたが、期待どおりの結果が得られません。i
selectedFileName
StringBuiledr
Insert