private void EscapeIf(UserSetting setting)
{
if (!FileExists(setting)) return;
var is_merge = setting.ExistedFile == Parameter.ExistedFiles.MergeTail ||
setting.ExistedFile == Parameter.ExistedFiles.MergeHead;
if (setting.ExistedFile == Parameter.ExistedFiles.Rename)
{
var directory = IoEx.Path.GetDirectoryName(setting.OutputPath);
var basename = IoEx.Path.GetFileNameWithoutExtension(setting.OutputPath);
var extension = IoEx.Path.GetExtension(setting.OutputPath);
for (var i = 2; i < 10000; ++i)
{
var old = IoEx.Path.GetFileName(setting.OutputPath);
var filename = string.Format("{0}({1}){2}", basename, i, extension);
setting.OutputPath = IoEx.Path.Combine(directory, filename);
AddMessage(string.Format("Rename: {0} -> {1}", old, filename));
if (!FileExists(setting)) break;
}
}
else if (setting.FileType == Parameter.FileTypes.PDF && is_merge)
{
_escaped = IoEx.Path.Combine(Path.WorkingDirectory, IoEx.Path.GetRandomFileName());
IoEx.File.Copy(setting.OutputPath, _escaped, true);
AddMessage(string.Format("Escape: {0} -> {1}", setting.OutputPath, _escaped));
}
}