Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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;
        }
Ejemplo n.º 4
0
        /// <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;
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 7
0
        /// <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);
        }