コード例 #1
0
ファイル: RecordManager.cs プロジェクト: xibeilang524/scada-1
        //////////////////////////////////////////////////////////////////////////////

        private static StreamWriter GetLogFileStream(Device device, DateTime now)
        {
            string path       = GetDeviceLogPath(device, now);
            string deviceName = device.Name;

            if (streams.ContainsKey(deviceName))
            {
                FileWriterHolder holder = streams[deviceName];
                if (holder.FilePath.ToLower() == path.ToLower())
                {
                    return(holder.FileWriter);
                }
                else
                {
                    StreamWriter fileWriter = holder.FileWriter;
                    if (fileWriter != null)
                    {
                        fileWriter.Close();
                        fileWriter.Dispose();
                    }
                    streams.Remove(deviceName);
                }
            }

            FileWriterHolder newHolder = new FileWriterHolder()
            {
                FilePath = path
            };

            if (!File.Exists(path))
            {
                // TODO: TO TEST!
                // string logPath = GetDeviceLogPath(device, DateTime.Now);
                StreamWriter fsw = new StreamWriter(path, true);
                newHolder.FileWriter = fsw;
                streams[deviceName]  = newHolder;
                return(fsw);
            }
            else
            {
                StreamWriter fsw = new StreamWriter(path, true);
                newHolder.FileWriter = fsw;
                streams[deviceName]  = newHolder;
                return(fsw);
            }
        }
コード例 #2
0
ファイル: RecordManager.cs プロジェクト: oisy/scada
        //////////////////////////////////////////////////////////////////////////////

        private static StreamWriter GetLogFileStream(Device device, DateTime now)
        {
            string path = GetDeviceLogPath(device, now);
            string deviceName = device.Name;
            if (streams.ContainsKey(deviceName))
            {
                FileWriterHolder holder = streams[deviceName];
                if (holder.FilePath.ToLower() == path.ToLower())
                {
                    return holder.FileWriter;
                }
                else
                {
                    StreamWriter fileWriter = holder.FileWriter;
                    if (fileWriter != null)
                    {
                        fileWriter.Close();
                        fileWriter.Dispose();
                    }
                    streams.Remove(deviceName);
                }
            }

            FileWriterHolder newHolder = new FileWriterHolder() { FilePath = path };
            if (!File.Exists(path))
            {
                // TODO: TO TEST!
                // string logPath = GetDeviceLogPath(device, DateTime.Now);
                StreamWriter fsw = new StreamWriter(path, true);
                newHolder.FileWriter = fsw;
                streams[deviceName] = newHolder;
                return fsw;
            }
            else
            {
                StreamWriter fsw = new StreamWriter(path, true);
                newHolder.FileWriter = fsw;
                streams[deviceName] = newHolder;
                return fsw;
            }
        }