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 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 }); }