/// <summary> /// update operation /// </summary> private void updateOperation() { try { innerFlag = monitorService.UpdateMonitorServer(innerMonitorServer); // if (innerFlag > -1) { if (System.IO.Directory.Exists(innerMonitorServer.monitorDrive)) { int resultForDeleteMonitorServerFolder = imsfs.DeleteMonitorServerFolderByServerId(Int32.Parse(innerMonitorServer.id)); if (resultForDeleteMonitorServerFolder > -1) { DirectoryInfo di = new DirectoryInfo(innerMonitorServer.monitorDrive); MonitorServerFolder msf = minitorFolderDataFormat(di, "1", Int32.Parse(innerMonitorServer.id)); int innerId = imsfs.InsertMonitorServerFolder(msf); //getChildFolderAndFile(di, maxId) } } // int monitorFileListenForResult = monitorFileListenService.UpdateMonitorServer(innerMonitorServer, monitorServer); } } catch (Exception ex) { logger.Error(ex.Message); } }
/// <summary> /// save operation /// </summary> private void saveOperation() { try { innerFlag = monitorService.InsertMonitorServer(innerMonitorServer); if (innerFlag > -1) { int maxId = monitorService.GetMaxId(); string sb = innerMonitorServer.monitorDrive; if (System.IO.File.Exists(sb)) { FileInfo file = new FileInfo(sb); if (file.Exists) { MonitorServerFolder msf = minitorFolderDataFormat(file, "1", maxId); int innerId = imsfs.InsertMonitorServerFolder(msf); } } else if (System.IO.Directory.Exists(sb)) { DirectoryInfo di = new DirectoryInfo(sb); MonitorServerFolder msf = minitorFolderDataFormat(di, "1", maxId); int innerId = imsfs.InsertMonitorServerFolder(msf); getChildFolderAndFile(di, maxId); } } } catch (Exception ex) { logger.Error(ex.Message); } }
/// <summary> /// /// </summary> /// <param name="MonitorServerFolder"></param> /// <param name="conn"></param> /// <returns></returns> public int InsertMonitorServerFolder(MonitorServerFolder MonitorServerFolder, OdbcConnection conn) { try { return(db.insert(MonitorServerFolder, "monitorServerFolder", conn)); } catch (Exception e) { throw e; } }
public int InsertMonitorServerFolder(MonitorServerFolder MonitorServerFolder) { OdbcConnection conn; int count = 0; using (conn = OdbcHelper.CreateConntion()) { conn.Open(); count = MonitorServerFolderDal.InsertMonitorServerFolder(MonitorServerFolder, conn); conn.Close(); } return(count); }
/// <summary> /// 保存選択の子フォルダ /// </summary> /// <param name="strFolderPath"></param> /// <param name="dt"></param> /// <param name="msID"></param> /// <returns></returns> private int InsertFolder(string strFolderPath, string dt, int msID) { int result = 0; try { if (Directory.Exists(strFolderPath)) { DirectoryInfo dirInfo = new DirectoryInfo(strFolderPath); foreach (DirectoryInfo folder in dirInfo.GetDirectories()) { MonitorServerFolder model = new MonitorServerFolder(); model.createDate = dt; model.updateDate = dt; model.creater = Session["LoginId"].ToString(); model.updater = Session["LoginId"].ToString(); model.monitorFlg = "0"; model.deleteFlg = 0; model.initFlg = "0"; model.monitorServerID = msID; model.monitorFileName = folder.Name; model.monitorFilePath = strFolderPath; model.monitorFileType = "99"; result = msFolderService.InsertMonitorServerFolder(model); result = InsertFolder(folder.FullName, dt, msID); } foreach (FileInfo file in dirInfo.GetFiles()) { MonitorServerFolder model = new MonitorServerFolder(); model.createDate = dt; model.updateDate = dt; model.creater = Session["LoginId"].ToString(); model.updater = Session["LoginId"].ToString(); model.monitorFlg = "1"; model.deleteFlg = 0; model.initFlg = "0"; model.monitorServerID = msID; model.monitorFileName = file.Name; model.monitorFilePath = strFolderPath; model.monitorFileType = file.Extension.ToString(); result = msFolderService.InsertMonitorServerFolder(model); } } } catch (Exception ex) { result = -99; logger.Error(ex.Message); } return(result); }
private int lists_exist(List <MonitorServerFolder> tempRemoveLists, MonitorServerFolder list) { int index = -1; for (int i = 0; i < tempRemoveLists.Count; i++) { if (tempRemoveLists[i].monitorServerID == list.monitorServerID && tempRemoveLists[i].monitorFileName == list.monitorFileName && tempRemoveLists[i].monitorFilePath == list.monitorFilePath) { index = i; break; } } return(index); }
/// <summary> /// get except condition /// </summary> private void formatListsByFileTypeSet(string monistorId) { IFileTypeSetService iftss = BLLFactory.ServiceAccess.CreateFileTypeSetService(); string monitorServerId = monistorId; IList <FileTypeSet> fileTypeSetList = iftss.GetFileTypeSetByMonitorServerID(monitorServerId); foreach (FileTypeSet fileTypeSet in fileTypeSetList) { if (!Directory.Exists(fileTypeSet.monitorServerFolderName)) { continue; } List <string> exList = new List <string>(); if (fileTypeSet.exceptAttributeFlg1 == "1" && !string.IsNullOrEmpty(fileTypeSet.exceptAttribute1)) { exList.Add(fileTypeSet.exceptAttribute1); } if (fileTypeSet.exceptAttributeFlg2 == "1" && !string.IsNullOrEmpty(fileTypeSet.exceptAttribute2)) { exList.Add(fileTypeSet.exceptAttribute2); } if (fileTypeSet.exceptAttributeFlg3 == "1" && !string.IsNullOrEmpty(fileTypeSet.exceptAttribute3)) { exList.Add(fileTypeSet.exceptAttribute3); } DirectoryInfo dir = new DirectoryInfo(fileTypeSet.monitorServerFolderName); FileInfo[] files = dir.GetFiles(); if (files.Count() > 0) { foreach (FileInfo fileInfo in files) { string extension = fileInfo.Extension; if (!exList.Contains(extension)) { continue; } string fullPath = fileInfo.FullName.IndexOf('\\') > -1 ? fileInfo.FullName.Substring(0, fileInfo.FullName.LastIndexOf('\\')) : fileInfo.FullName; MonitorServerFolder msf = new MonitorServerFolder(); msf.monitorServerID = Convert.ToInt32(monistorId); msf.monitorFilePath = fullPath; msf.monitorFileName = fileInfo.Name; msf.monitorFileType = fileInfo.Extension; formatListsData(msf, monistorId); } } } }
private int lists_contain(MonitorServerFolder list) { int index = -1; for (int i = 0; i < globalfolderList.Count; i++) { if (globalfolderList[i].monitorServerID == list.monitorServerID && globalfolderList[i].monitorFileName == list.monitorFileName && globalfolderList[i].monitorFilePath == list.monitorFilePath) { index = i; globalfolderList.RemoveAt(i); break; } } return(index); }
private void getChildFolderAndFile(DirectoryInfo sb, int id) { try { IMonitorServerFolderService imsfs = BLLFactory.ServiceAccess.CreateMonitorServerFolderService(); if (sb is DirectoryInfo) { FileSystemInfo[] fsis = sb.GetFileSystemInfos(); if (fsis.Count() > 0) { foreach (FileSystemInfo fsi in fsis) { if (fsi is FileInfo) { if (fsi.Exists) { MonitorServerFolder msf = minitorFolderDataFormat(fsi, "0", id); int innerId = imsfs.InsertMonitorServerFolder(msf); } } else { MonitorServerFolder msf = minitorFolderDataFormat(fsi, "0", id); int innerId = imsfs.InsertMonitorServerFolder(msf); getChildFolderAndFile((DirectoryInfo)fsi, id); } } } else { return; } } else { return; } } catch (Exception ex) { logger.Error(ex.Message); } }
/// <summary> /// /// </summary> /// <param name="MonitorServerFolder"></param> /// <param name="conn"></param> /// <returns></returns> public int UpdateMonitorServerFolder(MonitorServerFolder MonitorServerFolder, OdbcConnection conn) { string sql = @"UPDATE monitorServerFolder SET monitorServerID = ? ,monitorFileName = ? ,monitorFilePath = ? ,monitorFileType = ? ,monitorFlg = ? ,updater = ? ,updateDate = ? WHERE id=?"; try { OdbcParameter[] spvalues = DBTool.GetOdbcPm(MonitorServerFolder); return(OdbcHelper.ExecuteNonQuery(conn, System.Data.CommandType.Text, sql, spvalues)); } catch (Exception e) { throw e; } }
private MonitorServerFolder minitorFolderDataFormat(FileSystemInfo fileInfo, string initFlg, int id) { MonitorServerFolder msf = new MonitorServerFolder(); // 開始フォルダーのパス string startPath = "\\\\" + this.txtMonitorIp.Text.Trim() + "\\" + this.txtMonitorStfile.Text.Trim().TrimEnd('\\'); msf.monitorServerID = id; if (fileInfo is DirectoryInfo) { if (startPath.Equals(fileInfo.FullName.TrimEnd('\\'))) { msf.monitorFilePath = startPath; msf.monitorFileName = ""; } else { msf.monitorFilePath = fileInfo.FullName.Substring(0, fileInfo.FullName.LastIndexOf("\\")); msf.monitorFileName = fileInfo.Name; } msf.monitorFileType = "99"; msf.monitorFlg = "0"; } else { msf.monitorFileName = fileInfo.Name; int index = fileInfo.FullName.LastIndexOf("\\"); string filePath = fileInfo.FullName.Substring(0, index); msf.monitorFilePath = filePath; msf.monitorFileType = fileInfo.Extension; msf.monitorFlg = "1"; } msf.initFlg = initFlg; msf.monitorStatus = "未コピー"; msf.createDate = CommonUtil.DateTimeNowToString(); msf.creater = FrmLogin.userinfo.loginID; msf.updateDate = CommonUtil.DateTimeNowToString(); msf.updater = FrmLogin.userinfo.loginID; return(msf); }
/// <summary> /// /// </summary> /// <param name="MonitorServerFolder"></param> /// <param name="conn"></param> /// <returns></returns> public int UpdateMonitorServerFolder(MonitorServerFolder MonitorServerFolder, SqlConnection conn) { string sql = @"UPDATE monitorServerFolder SET monitorServerID = @monitorServerID ,monitorFileName = @monitorFileName ,monitorFilePath = @monitorFilePath ,monitorFileType = @monitorFileType ,monitorFlg = @monitorFlg ,updater = @updater ,updateDate = @updateDate WHERE id=@id"; try { SqlParameter[] spvalues = DBTool.GetSqlPm(MonitorServerFolder); return(SqlHelper.ExecuteNonQuery(conn, System.Data.CommandType.Text, sql, spvalues)); } catch (Exception e) { throw e; } }
/// <summary> /// 保存選択の子フォルダ /// </summary> /// <param name="strFolderPath"></param> /// <param name="dt"></param> /// <param name="msID"></param> /// <returns></returns> private int InsertFolder(string strFolderPath, string dt, int msID) { int result = 0; try { if (Directory.Exists(strFolderPath)) { FileTypeSet fset = searchFileTypeSet(msID.ToString(), strFolderPath); DirectoryInfo dirInfo = new DirectoryInfo(strFolderPath); foreach (DirectoryInfo folder in dirInfo.GetDirectories()) { if (fset != null) { if (fset.hiddenFileFlg == "1") {//隠しファイル if ((folder.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) { continue; } } if (fset.systemFileFlg == "1") {//システムファイル if ((folder.Attributes & FileAttributes.System) == FileAttributes.System) { continue; } } } MonitorServerFolder model = new MonitorServerFolder(); model.createDate = dt; model.updateDate = dt; model.creater = Session["LoginId"].ToString(); model.updater = Session["LoginId"].ToString(); model.monitorFlg = "0"; model.deleteFlg = 0; model.initFlg = "0"; model.monitorServerID = msID; model.monitorFileName = folder.Name; //model.monitorFilePath = folder.Parent.FullName.ToString(); model.monitorFilePath = strFolderPath; model.monitorFileType = "99"; result = msFolderService.InsertMonitorServerFolder(model); result = InsertFolder(folder.FullName, dt, msID); } foreach (FileInfo file in dirInfo.GetFiles()) { if (fset != null) { string strExceptAttribute1 = string.Empty; string strExceptAttribute2 = string.Empty; string strExceptAttribute3 = string.Empty; if (fset.exceptAttributeFlg1 == "1") { strExceptAttribute1 = fset.exceptAttribute1; } if (fset.exceptAttributeFlg2 == "1") { strExceptAttribute2 = fset.exceptAttribute2; } if (fset.exceptAttributeFlg3 == "1") { strExceptAttribute3 = fset.exceptAttribute3; } if (CommonUtil.IsExceptFile(file.Name, strExceptAttribute1, strExceptAttribute2, strExceptAttribute3)) { continue; } if (fset.hiddenFileFlg == "1") {//隠しファイル if ((file.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) { continue; } } if (fset.systemFileFlg == "1") {//システムファイル if ((file.Attributes & FileAttributes.System) == FileAttributes.System) { continue; } } } MonitorServerFolder model = new MonitorServerFolder(); //FileInfo file = new FileInfo(strFolderPath); model.createDate = dt; model.updateDate = dt; model.creater = Session["LoginId"].ToString(); model.updater = Session["LoginId"].ToString(); model.monitorFlg = "1"; model.deleteFlg = 0; model.initFlg = "0"; model.monitorServerID = msID; model.monitorFileName = file.Name; //model.monitorFilePath = file.DirectoryName; model.monitorFilePath = strFolderPath; model.monitorFileType = file.Extension.ToString(); result = msFolderService.InsertMonitorServerFolder(model); } } } catch (Exception ex) { result = -99; logger.Error(ex.Message); } return(result); }
/// <summary> /// format except list and remove /// </summary> /// <param name="msf"></param> private void formatListsData(MonitorServerFolder msf, string monistorId) { string msfFullPath = msf.monitorFilePath + "\\" + msf.monitorFileName; List <MonitorServerFolder> tempLists = new List <MonitorServerFolder>(); //List<MonitorServerFolder> tempRemoveLists = new List<MonitorServerFolder>(); if (globalfolderList.Count > 0) { foreach (MonitorServerFolder innerMsf in globalfolderList) { string listFullPath = innerMsf.monitorFilePath + "\\" + innerMsf.monitorFileName; if (msfFullPath.IndexOf(listFullPath) > -1) { if (lists_exist(tempRemoveLists, innerMsf) <= -1) { tempRemoveLists.Add(innerMsf); } if (lists_exist(tempRemoveLists, msf) <= -1) { tempRemoveLists.Add(msf); } if (Directory.Exists(listFullPath)) { DirectoryInfo dir = new DirectoryInfo(listFullPath); FileSystemInfo[] fileSystemInfos = dir.GetFileSystemInfos(); foreach (FileSystemInfo fileSystemInfo in fileSystemInfos) { string fullPath = fileSystemInfo.FullName.IndexOf('\\') > -1 ? fileSystemInfo.FullName.Substring(0, fileSystemInfo.FullName.LastIndexOf('\\')) : fileSystemInfo.FullName; string extension = fileSystemInfo.Extension; if (Directory.Exists(fileSystemInfo.FullName)) { extension = "99"; } MonitorServerFolder msfl = new MonitorServerFolder(); msfl.monitorServerID = Convert.ToInt32(monistorId); msfl.monitorFilePath = fullPath; msfl.monitorFileName = fileSystemInfo.Name; msfl.monitorFileType = extension; if (msfFullPath.IndexOf(fileSystemInfo.FullName) > -1 && !Directory.Exists(fileSystemInfo.FullName)) { continue; } else { tempLists.Add(msfl); } } } } } if (tempLists.Count > 0) { foreach (MonitorServerFolder innerMsf in tempLists) { lists_contain(innerMsf); globalfolderList.Add(innerMsf); } } if (tempRemoveLists.Count > 0) { foreach (MonitorServerFolder innerMsf in tempRemoveLists) { lists_contain(innerMsf); } } } }
public ActionResult Add(MonitorServer msModel) { int result = -1; //session获取值 if (Session["LoginId"] == null) { result = -99; } else { //保存 try { //string strpath = msModel.monitorDrive + ":"; string strpath = "\\\\" + msModel.monitorServerIP.Trim() + "\\" + msModel.startFile.Trim().Trim('\\').Replace('/', '\\') + "\\"; //if (!Directory.Exists(strpath)) //{ // result = -20; //} //else //{ string dt = Common.CommonUtil.DateTimeNowToString(); msModel.monitorDrive = strpath.TrimEnd('\\'); msModel.monitorDriveP = msModel.monitorDriveP + ":"; msModel.creater = Session["LoginId"].ToString(); msModel.createDate = dt; msModel.deleteFlg = 0; msModel.updater = Session["LoginId"].ToString(); msModel.updateDate = dt; msModel.synchronismFlg = 0; result = msSerivice.InsertMonitorServer(msModel); //maxID int intMonitorServerID = msSerivice.GetMaxId(); //if (Directory.Exists(strpath)) //{ MonitorServerFolder model = new MonitorServerFolder(); model.monitorServerID = intMonitorServerID; model.monitorFileType = "99"; model.monitorFilePath = strpath.TrimEnd('\\'); model.monitorFileName = ""; model.createDate = dt; model.updateDate = dt; model.creater = Session["LoginId"].ToString(); model.updater = Session["LoginId"].ToString(); model.monitorServerID = intMonitorServerID; model.monitorFileName = ""; model.monitorFlg = "0"; model.initFlg = "1"; model.deleteFlg = 0; model.synchronismFlg = 0; result = msFolderService.InsertMonitorServerFolder(model); result = InsertFolder(strpath, dt, intMonitorServerID); //} //} } catch (Exception ex) { result = -10; logger.Error(ex.Message); } } Response.Write(result); Response.End(); return(null); }
/// <summary> /// データ更新 /// </summary> /// <param name="msModel"></param> /// <returns></returns> public ActionResult Update(MonitorServer msModel) { int result = -1; if (Session["LoginId"] == null) { result = -99; } else { try { msModel.id = Request.Form["msId"]; string dt = Common.CommonUtil.DateTimeNowToString(); MonitorServer monitorServer = msSerivice.GetMonitorServerById(Convert.ToInt32(msModel.id)); msModel.updater = Session["LoginId"].ToString(); msModel.updateDate = dt; if (msModel.memo == null) { msModel.memo = string.Empty; } if (msModel.monitorDriveP == "" || msModel.monitorDriveP == null) { for (char i = 'A'; i <= 'Z'; i++) { if (!Directory.Exists(i + ":")) { msModel.monitorDriveP = i.ToString(); break; } } } string strpath = "\\\\" + msModel.monitorServerIP.Trim() + "\\" + msModel.startFile.Trim().Trim('\\').Replace('/', '\\') + "\\"; msModel.monitorDrive = strpath.TrimEnd('\\'); result = msSerivice.UpdateMonitorServer(msModel); if (result > -1) { if (msModel.monitorDriveP.IndexOf(':') <= -1) { msModel.monitorDriveP = msModel.monitorDriveP + ":"; } if (System.IO.Directory.Exists(msModel.monitorDriveP)) { int resultForDeleteMonitorServerFolder = msFolderService.DeleteMonitorServerFolderByServerId(Int32.Parse(msModel.id)); if (resultForDeleteMonitorServerFolder > -1) { //string strpath = "\\\\" + msModel.monitorServerIP.Trim() + "\\" + msModel.startFile.Trim().Trim('\\').Replace('/', '\\') + "\\"; DirectoryInfo di = new DirectoryInfo(msModel.monitorDrive); MonitorServerFolder model = new MonitorServerFolder(); model.monitorServerID = Convert.ToInt32(msModel.id); model.monitorFileType = "99"; model.monitorFilePath = strpath.TrimEnd('\\'); model.monitorFileName = ""; model.createDate = dt; model.updateDate = dt; model.creater = Session["LoginId"].ToString(); model.updater = Session["LoginId"].ToString(); model.monitorFileName = ""; model.monitorFlg = "0"; model.initFlg = "1"; model.deleteFlg = 0; int innerId = msFolderService.InsertMonitorServerFolder(model); } } int monitorFileListenForResult = msFileListenService.UpdateMonitorServer(msModel, monitorServer); } } catch (Exception ex) { result = -10; logger.Error(ex.Message); } } Response.Write(result); Response.End(); return(null); }
/// <summary> /// 变化处理 /// </summary> /// <param name="state"></param> private void OnWatchedFileChange(object state) { IMonitorServerFileService MonitorServerFileService = BLLFactory.ServiceAccess.CreateMonitorServerFileService(); IMonitorServerFolderService MonitorServerFolderService = BLLFactory.ServiceAccess.CreateMonitorServerFolderService(); // File Info SortedList htfilescopy = (SortedList)htfiles.Clone(); Mutex mutex = new Mutex(false, "FSW"); mutex.WaitOne(); mutex.ReleaseMutex(); foreach (DictionaryEntry file in htfilescopy) { try { FileSystemEventArgs fileevent = (FileSystemEventArgs)file.Value; //源路径 string filepath = System.IO.Path.GetFullPath(file.Key.ToString()); //备份路径 string backuppath = Path.Combine(_copydir, fileevent.Name); MonitorServerFile monitorServerFile = new MonitorServerFile(); MonitorServerFolder monitorServerFolder = new MonitorServerFolder(); // copy機能 if (fileevent.ChangeType.Equals(WatcherChangeTypes.Created)) { // Copy方法変更 2014/01/30 変更 //bool result = FileSystem.FileCopy(filepath, backuppath); CopyDirectory fileCopy = new CopyDirectory(filepath, backuppath); fileCopy.StarCopy(); //IO問題であれば、次のファイルを処理する if (fileCopy._Errorlist.Count > 0) { foreach (string errorMessage in fileCopy._Errorlist) { logger.Error(errorMessage); } continue; } //if (!result) //{ // continue; //} //判断是否是目录 if (Directory.Exists(filepath)) { monitorServerFile.monitorFileType = Path.GetExtension(backuppath); monitorServerFile.monitorFileSize = "0"; monitorServerFile.monitorFileStatus = 1; //--- monitorServerFolder.monitorServerID = _id; monitorServerFolder.monitorFileName = Path.GetFileName(fileevent.Name); monitorServerFolder.monitorFilePath = filepath.TrimEnd(("\\" + Path.GetFileName(fileevent.Name)).ToCharArray()); monitorServerFolder.monitorFileType = "99"; monitorServerFolder.initFlg = "0"; monitorServerFolder.monitorFlg = "0"; monitorServerFolder.creater = "admin"; monitorServerFolder.updater = "admin"; monitorServerFolder.createDate = CommonUtil.DateTimeNowToString(); monitorServerFolder.updateDate = CommonUtil.DateTimeNowToString(); } else { System.IO.FileInfo fileinfo = new System.IO.FileInfo(backuppath); monitorServerFile.monitorFileType = Path.GetExtension(backuppath); monitorServerFile.monitorFileSize = fileinfo.Length.ToString(); monitorServerFile.monitorFileStatus = 1; //--- monitorServerFolder.monitorServerID = _id; monitorServerFolder.monitorFileName = Path.GetFileName(fileevent.Name); monitorServerFolder.monitorFilePath = filepath.TrimEnd(("\\" + Path.GetFileName(fileevent.Name)).ToCharArray()); monitorServerFolder.monitorFileType = Path.GetExtension(backuppath); monitorServerFolder.initFlg = "0"; monitorServerFolder.monitorFlg = "1"; monitorServerFolder.creater = "admin"; monitorServerFolder.updater = "admin"; monitorServerFolder.createDate = CommonUtil.DateTimeNowToString(); monitorServerFolder.updateDate = CommonUtil.DateTimeNowToString(); } //新增文件默认为监视,添加check MonitorServerFolderService.InsertMonitorServerFolder(monitorServerFolder); } else if (fileevent.ChangeType.Equals(WatcherChangeTypes.Changed)) { System.IO.FileInfo fileinfo = new System.IO.FileInfo(backuppath); if (fileinfo.IsReadOnly) { continue; } fileinfo.IsReadOnly = true; // Copy方法変更 2014/01/30 変更 //bool result = FileSystem.FileCopy(filepath, backuppath); CopyDirectory fileCopy = new CopyDirectory(filepath, backuppath); fileCopy.StarCopy(); //IO問題であれば、次のファイルを処理する if (fileCopy._Errorlist.Count > 0) { foreach (string errorMessage in fileCopy._Errorlist) { logger.Error(errorMessage); } continue; } //if (!result) //{ // continue; //} //判断是否是目录 if (Directory.Exists(filepath)) { monitorServerFile.monitorFileType = Path.GetExtension(backuppath); monitorServerFile.monitorFileSize = "0"; monitorServerFile.monitorFileStatus = 2; } else { monitorServerFile.monitorFileType = Path.GetExtension(backuppath); monitorServerFile.monitorFileSize = fileinfo.Length.ToString(); monitorServerFile.monitorFileStatus = 2; } } else if (fileevent.ChangeType.Equals(WatcherChangeTypes.Deleted)) { //判断被删除的目录是否存在 if (Directory.Exists(backuppath)) { monitorServerFile.monitorFileType = Path.GetExtension(backuppath); monitorServerFile.monitorFileSize = "0"; bool result = FileSystem.FileDelete(backuppath); //如果出现IO冲突,去执行下一个 if (!result) { continue; } monitorServerFile.monitorFileStatus = 3; } //判断被删除的文件是否存在 else if (File.Exists(backuppath)) { System.IO.FileInfo fileinfo = new System.IO.FileInfo(backuppath); fileinfo.IsReadOnly = false; monitorServerFile.monitorFileType = Path.GetExtension(backuppath); monitorServerFile.monitorFileSize = fileinfo.Length.ToString(); bool result = FileSystem.FileDelete(backuppath); //如果出现IO冲突,去执行下一个 if (!result) { continue; } monitorServerFile.monitorFileStatus = 3; } else { // File Info Remove htfiles.Remove(file.Key); continue; } } else if (fileevent.ChangeType.Equals(WatcherChangeTypes.Renamed)) { RenamedEventArgs refileevent = (RenamedEventArgs)file.Value; string oldfilename = refileevent.OldName.ToString(); string olddir = Path.Combine(_copydir, oldfilename); if (Path.GetExtension(olddir) == string.Empty) { //old file dir info insert if (Directory.Exists(olddir)) { MonitorServerFile monitorServerFile1 = new MonitorServerFile(); monitorServerFile1.monitorServerID = _id; monitorServerFile1.monitorFileName = Path.GetFileName(oldfilename); monitorServerFile1.monitorFilePath = olddir; monitorServerFile1.monitorFileType = Path.GetExtension(olddir); monitorServerFile1.monitorFileSize = "0"; monitorServerFile1.monitorStartTime = CommonUtil.DateTimeNowToString(); monitorServerFile1.monitorFileStatus = 3; monitorServerFile1.transferFlg = 0; monitorServerFile1.deleteFlg = 0; monitorServerFile1.creater = "exe"; monitorServerFile1.createDate = CommonUtil.DateTimeNowToString(); monitorServerFile1.updater = "exe"; monitorServerFile1.updateDate = CommonUtil.DateTimeNowToString(); MonitorServerFileService.InsertMonitorServerFile(monitorServerFile1, filepath); bool result = FileSystem.FileDelete(olddir); //如果出现IO冲突,去执行下一个 if (!result) { continue; } } // Copy方法変更 2014/01/30 変更 //bool result1 = FileSystem.FileCopy(filepath, backuppath); CopyDirectory fileCopy = new CopyDirectory(filepath, backuppath); fileCopy.StarCopy(); //IO問題であれば、次のファイルを処理する if (fileCopy._Errorlist.Count > 0) { foreach (string errorMessage in fileCopy._Errorlist) { logger.Error(errorMessage); } continue; } //if (!result1) //{ // continue; //} //new file dir info insert monitorServerFile.monitorFileType = Path.GetExtension(backuppath); monitorServerFile.monitorFileSize = "0"; monitorServerFile.monitorFileStatus = 4; //--- monitorServerFolder.monitorServerID = _id; monitorServerFolder.monitorFileName = Path.GetFileName(fileevent.Name); monitorServerFolder.monitorFilePath = filepath.TrimEnd(("\\" + Path.GetFileName(fileevent.Name)).ToCharArray()); monitorServerFolder.monitorFileType = "99"; monitorServerFolder.initFlg = "0"; monitorServerFolder.monitorFlg = "0"; monitorServerFolder.creater = "admin"; monitorServerFolder.updater = "admin"; monitorServerFolder.createDate = CommonUtil.DateTimeNowToString(); monitorServerFolder.updateDate = CommonUtil.DateTimeNowToString(); } else { //old file info insert if (File.Exists(olddir)) { MonitorServerFile monitorServerFile1 = new MonitorServerFile(); monitorServerFile1.monitorServerID = _id; monitorServerFile1.monitorFileName = Path.GetFileName(oldfilename); monitorServerFile1.monitorFilePath = olddir; System.IO.FileInfo fileinfo1 = new System.IO.FileInfo(olddir); monitorServerFile1.monitorFileType = Path.GetExtension(olddir); monitorServerFile1.monitorFileSize = fileinfo1.Length.ToString(); monitorServerFile1.monitorStartTime = CommonUtil.DateTimeNowToString(); monitorServerFile1.monitorFileStatus = 3; monitorServerFile1.transferFlg = 0; monitorServerFile1.deleteFlg = 0; monitorServerFile1.creater = "exe"; monitorServerFile1.createDate = CommonUtil.DateTimeNowToString(); monitorServerFile1.updater = "exe"; monitorServerFile1.updateDate = CommonUtil.DateTimeNowToString(); MonitorServerFileService.InsertMonitorServerFile(monitorServerFile1, filepath); fileinfo1.IsReadOnly = false; bool result = FileSystem.FileDelete(olddir); //如果出现IO冲突,去执行下一个 if (!result) { continue; } } // Copy方法変更 2014/01/30 変更 //bool result1 = FileSystem.FileCopy(filepath, backuppath); CopyDirectory fileCopy = new CopyDirectory(filepath, backuppath); fileCopy.StarCopy(); //IO問題であれば、次のファイルを処理する if (fileCopy._Errorlist.Count > 0) { foreach (string errorMessage in fileCopy._Errorlist) { logger.Error(errorMessage); } continue; } //if (!result1) //{ // continue; //} //new file info insert System.IO.FileInfo fileinfo = new System.IO.FileInfo(backuppath); monitorServerFile.monitorFileType = Path.GetExtension(backuppath); monitorServerFile.monitorFileSize = fileinfo.Length.ToString(); monitorServerFile.monitorFileStatus = 4; //--- monitorServerFolder.monitorServerID = _id; monitorServerFolder.monitorFileName = Path.GetFileName(fileevent.Name); monitorServerFolder.monitorFilePath = filepath.TrimEnd(("\\" + Path.GetFileName(fileevent.Name)).ToCharArray()); monitorServerFolder.monitorFileType = Path.GetExtension(backuppath); monitorServerFolder.initFlg = "0"; monitorServerFolder.monitorFlg = "1"; monitorServerFolder.creater = "admin"; monitorServerFolder.updater = "admin"; monitorServerFolder.createDate = CommonUtil.DateTimeNowToString(); monitorServerFolder.updateDate = CommonUtil.DateTimeNowToString(); } //重命名后文件默认为监视,添加check MonitorServerFolderService.InsertMonitorServerFolder(monitorServerFolder); } //insert database monitorServerFile.monitorServerID = _id; monitorServerFile.monitorFileName = Path.GetFileName(fileevent.Name); monitorServerFile.monitorFilePath = backuppath; monitorServerFile.monitorStartTime = CommonUtil.DateTimeNowToString(); monitorServerFile.transferFlg = 0; monitorServerFile.deleteFlg = 0; monitorServerFile.creater = "exe"; monitorServerFile.createDate = CommonUtil.DateTimeNowToString(); monitorServerFile.updater = "exe"; monitorServerFile.updateDate = CommonUtil.DateTimeNowToString(); MonitorServerFileService.InsertMonitorServerFile(monitorServerFile, filepath); // File Info Remove htfiles.Remove(file.Key); } catch (Exception e) { logger.Error(e.Message); continue; } } }