示例#1
0
        public void Write(string sourceFileName, byte[] data)
        {
            var sm = new SubstMacros();

            sm.SetMacro("FILENAME", Path.GetFileName(sourceFileName));

            string dstFolder   = (_fileRecordProtect == EpsTaskProtect.FOLDER) ? _supportTargetFolder : _targetFolder;
            string dstFileName = (_fileRecordProtect == EpsTaskProtect.EXT) ? sm.Substitute(_supportFileName) : Path.GetFileName(sourceFileName);
            string dstFile     = Path.Combine(dstFolder, dstFileName);

            CreateFile(dstFile, data);

            if (_fileRecordProtect == EpsTaskProtect.CRC)
            {
                var    hc          = new HashCode();
                string strHashCode = hc.GetMD5(dstFile);
                CreateFile(Path.Combine(_targetFolder, sm.Substitute(_supportFileName)), new[] { strHashCode });
            }

            if (_fileRecordProtect == EpsTaskProtect.EXT || _fileRecordProtect == EpsTaskProtect.FOLDER)
            {
                string newFileName = Path.Combine(_targetFolder, Path.GetFileName(sourceFileName));
                DeleteFileIfExists(newFileName);
                MoveFile(dstFile, newFileName);
            }

            if (_deleteSrcFile)
            {
                DeleteFileIfExists(sourceFileName);
            }
        }
示例#2
0
 protected EpsOtcBase()
 {
     FilePumper = new FilePumper(Environment.MachineName, Environment.UserName, string.Empty);
     FilePumper.OnEventErrorHandler += LogClient.Logger.OnEventErrorHandler;
     Files = new List <FileStruct>();
     Sb    = new SubstMacros();
     Sb.SetMacro("USERNAME", Environment.UserName);
     Sb.SetMacro("HOSTNAME", Environment.MachineName);
 }
示例#3
0
        public void Write(string sourceFileName, byte[] data)
        {
            var sm = new SubstMacros();

            sm.SetMacro("FILENAME", sourceFileName);

            string dstFolder   = (_fileRecordProtect == EpsTaskProtect.FOLDER) ? _supportTargetFolder : _targetFolder;
            string dstFileName = (_fileRecordProtect == EpsTaskProtect.EXT) ? sm.Substitute(_supportFileName) : Path.GetFileName(sourceFileName);
            string dstFile     = String.Format("{0}/{1}", dstFolder, dstFileName);

            // Проверка наличия директории и ее создание, если ее нет
            if (!IsDirectoryExists(dstFolder))
            {
                CreateDirectory(dstFolder);
            }

            // Проверка существования файла и его удаление
            if (IsFileExists(dstFile))
            {
                DeleteFile(dstFile);
            }

            // Запись файла или временного файла
            UploadFile(dstFile, data);

            // Перемещение временного файла
            if (_fileRecordProtect == EpsTaskProtect.FOLDER)
            {
                if (!IsDirectoryExists(_targetFolder))
                {
                    CreateDirectory(_targetFolder);
                }
                MoveFile(dstFile, String.Format("{0}/{1}", _targetFolder, Path.GetFileName(sourceFileName)));
            }

            // Переименование временного файла
            if (_fileRecordProtect == EpsTaskProtect.EXT)
            {
                RenameFile(dstFile, sourceFileName);
            }

            // Создание файла - спутника
            if (_fileRecordProtect == EpsTaskProtect.CRC)
            {
                UploadFile(string.Format("{0}/{1}", dstFolder, sm.Substitute(_supportFileName)),
                           Encoding.Default.GetBytes(new HashCode().GetMD5(data)));
            }
        }