public FileInfoChangeResult ChangeFIleInfo(string filePath, BookInfo changeInfo, PDFFileChangeSetting changeSetting) { var res = new FileInfoChangeResult(); try { var doc = PdfReader.Open(filePath, PdfDocumentOpenMode.Modify); var changeData = RenameInfo.GetReplaceParam(changeInfo); doc.Info.Title = EncodingUnicode(GetChanedData(changeSetting.Title, changeData)); doc.Info.Author = EncodingUnicode(GetChanedData(changeSetting.Author, changeData)); doc.Info.Keywords = EncodingUnicode(GetChanedData(changeSetting.Keyword, changeData)); doc.Info.Subject = EncodingUnicode(GetChanedData(changeSetting.SubTitle, changeData)); //出版年 var time = DateTime.Now; if (DateTime.TryParse(GetChanedData(changeSetting.CreationDate, changeData), out time)) { doc.Info.CreationDate = time; } doc.Save(filePath); res.IsSuccess = true; } catch (Exception e) { res.IsSuccess = false; res.Message = e.ToString(); } return(res); }
public static ValidationResult CheckFileName(string path, ValidationContext context) { if (string.IsNullOrWhiteSpace(path)) { return(new ValidationResult("ファイル名を入力してください。")); } //置換パラメータがなければ無効 var keys = RenameInfo.GetKeys(); if (!keys.Any(x => path.Contains(x))) { return(new ValidationResult("最低でも1つの置換パラメータを入れてください。")); } var invalidChars = System.IO.Path.GetInvalidFileNameChars(); if (path.IndexOfAny(invalidChars) >= 0) { return(new ValidationResult("ファイル名に指定不可能な文字列が入力されています。")); } else { return(ValidationResult.Success); } }
public FileInfoSettingViewModel() { _closeRequest = new InteractionRequest <Confirmation>(); _messageBoxRequest = new InteractionRequest <Confirmation>(); Setting = new WpfPDFFileChangeSetting(); FileNameSetting = string.Empty; DisplayRule = RenameInfo.GetRuleName(); }
public ConvertInfo RenameBookFile(string file, BookInfo renameInfo, string renameRule) { var repName = string.Empty; if (File.Exists(file) && !string.IsNullOrWhiteSpace(renameRule)) { try { var ext = Path.GetExtension(file); var basedir = Path.GetDirectoryName(file); var repParam = RenameInfo.GetReplaceParam(renameInfo); repName = CommonStringReplace.GetReplaceString(renameRule, repParam) + ext; //禁則文字は_置換する var invalidChars = System.IO.Path.GetInvalidFileNameChars(); foreach (var ire in invalidChars) { repName = repName.Replace(ire, '_'); } //重複時にはカウントアップ var savePath = FileUtil.GetUniqueFilename(Path.Combine(basedir, repName)); repName = Path.GetFileName(savePath); File.Move(file, savePath); return(new ConvertInfo() { BeforeFileName = file, AfterFileName = repName, Message = "", IsReaNameSuccess = true, AfterFullPath = savePath }); } catch (Exception e) { return(new ConvertInfo() { BeforeFileName = file, AfterFileName = repName, Message = e.ToString(), IsReaNameSuccess = false }); } } return(new ConvertInfo() { BeforeFileName = file, AfterFileName = repName, Message = "リネーム失敗", IsReaNameSuccess = false }); }
void renameResources(List <TypeInfo> renamedTypes) { var newNames = new Dictionary <Resource, RenameInfo>(); foreach (var info in renamedTypes) { var oldFullName = info.oldFullName; Resource resource; if (!nameToResource.TryGetValue(oldFullName, out resource)) { continue; } if (newNames.ContainsKey(resource)) { continue; } var newTypeName = info.type.TypeDefinition.FullName; var newName = newTypeName + resource.Name.Substring(oldFullName.Length); newNames[resource] = new RenameInfo(resource, info, newName); Log.v("Renamed resource in resources: {0} => {1}", Utils.removeNewlines(resource.Name), newName); resource.Name = newName; } }
void renameResources(List<TypeInfo> renamedTypes) { var newNames = new Dictionary<Resource, RenameInfo>(); foreach (var info in renamedTypes) { var oldFullName = info.oldFullName; Resource resource; if (!nameToResource.TryGetValue(oldFullName, out resource)) continue; if (newNames.ContainsKey(resource)) continue; var newTypeName = info.type.TypeDef.FullName; var newName = newTypeName + resource.Name.String.Substring(oldFullName.Length); newNames[resource] = new RenameInfo(resource, info, newName); Logger.v("Renamed resource in resources: {0} => {1}", Utils.removeNewlines(resource.Name), newName); resource.Name = newName; } }