/// <summary> /// 一時ファイルパスを変換後ファイルパスへ移動させる。 /// </summary> /// <param name="parameter">変換パラメーター。</param> private void TempFileToDestFile(FileConvertParameter parameter) { var fileExists = File.Exists(parameter.DestFileName); // 上書きでない時、変換後に変換先ファイルパスに同名のファイルがある場合 if (!parameter.Overwrite && fileExists) { throw new ArgumentException(ExceptionResources.GetString("ExistsDestFilePath")); } // 変換後ファイルパスへ移動 if (parameter.Overwrite && fileExists) { File.Delete(parameter.DestFileName); } var directory = Path.GetDirectoryName(parameter.DestFileName); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } File.Move(parameter.DestConvertFileName, parameter.DestFileName); var tempDirectory = Path.GetDirectoryName(parameter.DestConvertFileName); if (Directory.GetFiles(tempDirectory).Length == 0) { Directory.Delete(tempDirectory); } }
/// <summary> /// 変換実行が有効かどうかを取得します。 /// </summary> /// <returns>true:有効, false:無効</returns> protected virtual bool CanConvert(FileConvertParameter parameter) { if (parameter == null) { ErrorMessage = ExceptionResources.GetString("InvalidConvertParameter"); return(false); } if (string.IsNullOrEmpty(parameter.SourceFileName) || (!parameter.DestThrough && string.IsNullOrEmpty(parameter.DestFileName))) { ErrorMessage = ExceptionResources.GetString("InvalidConvertParameter"); return(false); } if (!File.Exists(parameter.SourceFileName)) { ErrorMessage = string.Format(ExceptionResources.GetString("NotExistsFilePath"), parameter.SourceFileName); return(false); } // 変換をスルーするのに、一時ディレクトリを利用していない場合はNG if (parameter.DestThrough && !parameter.UseDestTemporary) { ErrorMessage = ExceptionResources.GetString("InvalidConvertParameter"); return(false); } if (!parameter.Overwrite && File.Exists(parameter.DestFileName)) { ErrorMessage = ExceptionResources.GetString("ExistsDestFilePath"); return(false); } return(true); }
/// <summary> /// LimitedList クラスの新しいインスタンスを初期化します。 /// </summary> /// <param name="maxSize">管理する最大数。0を指定すると無制限になります。</param> public LimitedList(int maxSize = 0) : base() { if (maxSize < 0) { throw new ArgumentOutOfRangeException("MaxSize", ExceptionResources.GetString("ObjectMaxSizeOutOfRange")); } MaxSize = maxSize; }
/// <summary>指定した値をリストに追加します。</summary> /// <param name="value">追加する要素の値。</param> /// <exception cref="T:System.ArgumentException">管理上限に達したため、追加できません。</exception> public new void Add(TValue value) { if (!CanAdd()) { throw new ArgumentException("MaxSize", ExceptionResources.GetString("ObjectMaxReached")); } base.Add(value); lastAccessInstance = value; }
/// <summary> /// 変換先の一時ディレクトリを利用している場合、変換したファイルを変換先へコピーします。 /// </summary> /// <param name="parameter">変換パラメーター。</param> protected virtual void CopySucceedDestFile(FileConvertParameter parameter) { var fileExists = File.Exists(parameter.DestFileName); // 上書きでない時、変換後に変換先ファイルパスに同名のファイルがある場合 if (!parameter.Overwrite && fileExists) { throw new ArgumentException(ExceptionResources.GetString("ExistsDestFilePath")); } // 変換後ファイルパスへコピー var directory = Path.GetDirectoryName(parameter.DestFileName); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } File.Copy(parameter.DestConvertFileName, parameter.DestFileName, true); }
/// <summary> /// 変換実行が有効かどうかを取得します。 /// </summary> /// <returns>true:有効, false:無効</returns> protected virtual bool CanConvert() { if (Parameter == null) { ErrorMessage = ExceptionResources.GetString("InvalidConvertParameter"); return(false); } if (string.IsNullOrEmpty(Parameter.SourceFilePath) || string.IsNullOrEmpty(Parameter.DestinationFilePath)) { ErrorMessage = ExceptionResources.GetString("InvalidConvertParameter"); return(false); } if (!File.Exists(Parameter.SourceFilePath)) { ErrorMessage = string.Format(ExceptionResources.GetString("NotExistsFilePath"), Parameter.SourceFilePath); return(false); } if (!Directory.Exists(Path.GetDirectoryName(Parameter.DestinationFilePath))) { ErrorMessage = string.Format(ExceptionResources.GetString("NotExistsFilePath"), Parameter.DestinationFilePath); return(false); } if (Parameter.UseTemporary) { if (Parameter.DestinationFilePath == Parameter.TemporaryFilePath) { ErrorMessage = ExceptionResources.GetString("SameTempPathAndDestFilePath"); return(false); } } if (!Parameter.Overwrite && File.Exists(Parameter.DestinationFilePath)) { ErrorMessage = ExceptionResources.GetString("ExistsDestFilePath"); return(false); } return(true); }
/// <summary> /// 一時ファイルパスを変換後ファイルパスへ移動させる。 /// </summary> private void TempFileToDestFile() { var fileExists = File.Exists(Parameter.DestinationFilePath); // 上書き設定しておらず、変換後ファイルパスにファイルがある場合 if (!Parameter.Overwrite && fileExists) { throw new ArgumentException(ExceptionResources.GetString("ExistsDestFilePath")); } // 変換後ファイルパスへ保存 if (Parameter.Overwrite && fileExists) { File.Delete(Parameter.DestinationFilePath); } var directory = Path.GetDirectoryName(Parameter.DestinationFilePath); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } File.Move(Parameter.TemporaryFilePath, Parameter.DestinationFilePath); }