예제 #1
0
        private BasicActionEnum BuildFileEventChain(string FilePath, Int32 CurrentIndex, List <FSSyncEvent> WorkingList, ref string FinalFileName)
        {
            BasicActionEnum ReturnValue     = BasicActionEnum.None;
            BasicActionEnum RecursiveResult = BasicActionEnum.None;
            FSSyncEvent     TempEvent;

            //Has the file been renamed
            TempEvent = WorkingList.Find(x => x.Action.Equals(BasicActionEnum.Renamed) && x.OldOrCurrentFilePathFull.Equals(FilePath) && x.Index > CurrentIndex);
            if (TempEvent != null)
            {
                //Log(String.Format("****File {0} was renamed {1}", FilePath, TempEvent.NewFilePath));
                FinalFileName   = TempEvent.NewFilePathFull;
                ReturnValue     = BasicActionEnum.Renamed;
                RecursiveResult = BuildFileEventChain(TempEvent.NewFilePathFull, TempEvent.Index, WorkingList, ref FinalFileName);
                if (RecursiveResult != BasicActionEnum.None)
                {
                    ReturnValue = RecursiveResult;
                }
                WorkingList.Remove(TempEvent);
            }

            //Has the file been deleted
            TempEvent = WorkingList.Find(x => x.Action.Equals(BasicActionEnum.Deleted) && x.OldOrCurrentFilePathFull.Equals(FilePath) && x.Index > CurrentIndex);
            if (TempEvent != null)
            {
                ReturnValue = BasicActionEnum.Deleted;
                //Log(String.Format("****File {0} was deleted ", TempEvent.FilePath));
                WorkingList.Remove(TempEvent);
            }

            return(ReturnValue);
        }
 public FSSyncEvent(BasicActionEnum pAction, string sOldOrCurrentFilePathFull, string sNewFilePathFull, Int32 pIndex = 0)
 {
     this.Index  = pIndex;
     this.Action = pAction;
     this.OldOrCurrentFilePathFull = sOldOrCurrentFilePathFull;
     this.NewFilePathFull          = sNewFilePathFull;
 }