/// <summary> /// 画像を一時フォルダにコピー /// </summary> /// <param name="filePath">コピー元画像ファイルパス</param> /// <returns>処理結果タプル(成功/失敗、成功した場合のファイル名、失敗した場合のエラーメッセージ)</returns> private Tuple <bool, string, string> CopyImageFileToTemp(string filePath) { // 拡張子取得 FileInfo file = new FileInfo(filePath); if (!file.Exists) { return(new Tuple <bool, string, string>(false, null, "ファイルが見つかりません。")); } try { using (Image image = Image.FromFile(filePath)) { int selectedRow = dataGridView1.SelectedCells[0].RowIndex; int selectedColumn = dataGridView1.SelectedCells[0].ColumnIndex; ((DataGridViewImageCell)dataGridView1[selectedColumn - 1, selectedRow]).ValueIsIcon = false; // 縮小イメージを取得 Image convertedImage = ImageUtility.ConvertImageSize(image); // 画面を閉じるときにDisposeできるようにしておく。 _disposeItems.Add(convertedImage); // 縮小イメージを設定 dataGridView1[selectedColumn - 1, selectedRow].Value = convertedImage; } } catch (Exception) { return(new Tuple <bool, string, string>(false, null, "選択されたファイルはイメージファイルではありません。")); } // 新しいイメージファイル名生成 string currentImageFileName = string.Format(IMAGE_FILE_DEFAULT_NAME, _fileCount++, file.Extension); if (!Directory.Exists(_tempFolderPath)) { // 一時フォルダがない場合は作成 Directory.CreateDirectory(_tempFolderPath); } try { // 一時フォルダにイメージファイルをコピー File.Copy(filePath, Path.Combine(_tempFolderPath, currentImageFileName)); } catch (Exception) { return(new Tuple <bool, string, string>(false, null, "イメージファイルのコピーに失敗しました。")); } // 処理に成功した時は新しいイメージファイル名を返す return(new Tuple <bool, string, string>(true, currentImageFileName, null)); }