Exemplo n.º 1
0
        public void Deleted(object source, FileSystemEventArgs e)
        {
            _mainForm.Log("id[" + id + "]文件删除事件处理逻辑 " + e.ChangeType + e.FullPath);
            if (!IsSyn(e.FullPath))
            {
                return;
            }

            SCommReq <SDelFileReq> delReq = new SCommReq <SDelFileReq>();

            delReq.param = new SDelFileReq();
            string filePath = e.FullPath.Replace(GetWindowsPath(), _linux_root_path);

            filePath               = filePath.Replace("\\", "/");
            delReq.method          = "del_file";
            delReq.param.file_name = filePath;
            string jsonReq = JsonHelper.SerializeObject(delReq);
            // 填充报文

            string recevData = "";

            RemoteRequest(jsonReq, ref recevData); // 发送请求

            SDelFileRsp stRsp = JsonHelper.DeserializeJsonToObject <SDelFileRsp>(recevData);

            if (stRsp != null)
            {
                Log(stRsp.msg);
            }
            else
            {
                Log("返回值异常");
            }
        }
Exemplo n.º 2
0
        public void Created(object source, FileSystemEventArgs e)
        {
            _mainForm.Log("id[" + id + "]文件创建事件处理逻辑 " + e.ChangeType + e.FullPath);

            if (!IsSyn(e.FullPath))
            {
                return;
            }
            try
            {
                // 文件创建,处理逻辑
                if (File.GetAttributes(e.FullPath) != FileAttributes.Directory)
                {
                    string linuxPath = e.FullPath.Replace(GetWindowsPath(), _linux_root_path);
                    linuxPath = linuxPath.Replace("\\", "/");

                    int index = linuxPath.LastIndexOf("/");

                    if (index >= 0)
                    {
                        linuxPath = linuxPath.Substring(0, index);
                    }
                    _synFiles.SynFile(e.FullPath, linuxPath);
                    Log("id[" + id + "]同步文件:" + e.FullPath + "->" + linuxPath);
                }
                else// 创建目录
                {
                    SCommReq <SCreateDirReq> renameReq = new SCommReq <SCreateDirReq>();
                    renameReq.method    = "create_dir";
                    renameReq.param     = new SCreateDirReq();
                    renameReq.param.dir = ConvertToLinuxPath(e.FullPath);

                    string jsonReq   = JsonHelper.SerializeObject(renameReq);
                    string recevData = "";
                    RemoteRequest(jsonReq, ref recevData); // 发送请求
                    SCreateDirRsp stRsp = JsonHelper.DeserializeJsonToObject <SCreateDirRsp>(recevData);
                    if (stRsp != null)
                    {
                        Log(stRsp.msg);
                    }
                    else
                    {
                        Log("返回值异常");
                    }
                    Log("\r\n");
                }
            }
            catch (FileNotFoundException ee)
            {
                Log("找不到文件:" + ee.ToString());
            }
        }
Exemplo n.º 3
0
        public void Renamed(object source, RenamedEventArgs e)
        {
            _mainForm.Log("id[" + id + "]文件重命名事件处理逻辑 " + e.ChangeType + e.FullPath);

            if (!IsSyn(e.FullPath))
            {
                return;
            }

            string jsonReq;
            string recevData;

            SCommReq <SRenameReq> renameReq = new SCommReq <SRenameReq>();

            if (File.GetAttributes(e.FullPath) != FileAttributes.Directory)
            {
                renameReq.method = "rename_file";
            }
            else
            {
                renameReq.method = "rename_dir";
            }

            renameReq.param          = new SRenameReq();
            renameReq.param.old_name = ConvertToLinuxPath(e.OldFullPath);
            renameReq.param.new_name = ConvertToLinuxPath(e.FullPath);

            jsonReq = JsonHelper.SerializeObject(renameReq);
            // 发送数据
            recevData = "";
            RemoteRequest(jsonReq, ref recevData); // 发送请求
            SRenameRsp stRsp = JsonHelper.DeserializeJsonToObject <SRenameRsp>(recevData);

            if (stRsp != null)
            {
                Log(stRsp.msg);
            }
            else
            {
                Log("返回值异常");
            }
            Log("\r\n");
            Log("触发一次文件变化时间");
            string dirPath, fileName = "";

            dirPath = GetDirName(e.FullPath, ref fileName);
            FileSystemEventArgs fileChanngeEventArgs =
                new FileSystemEventArgs(WatcherChangeTypes.Changed, dirPath, fileName);

            Changed(source, fileChanngeEventArgs);
        }