source: trunk/CrypPlugins/PeerToPeer/DebugToFile.cs @ 1433

Last change on this file since 1433 was 1433, checked in by Paul Lelgemann, 12 years ago

o Extracted common classes from PeerToPeerBase plugin into new PeerToPeer plugin as a preparation for the new P2P proxy
o Modified directory properties to ignore the CrypBuild directory

File size: 3.4 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.IO;
6
7namespace Cryptool.Plugins.PeerToPeer.Internal
8{
9    public static class DebugToFile
10    {
11        private static StreamWriter sw;
12        private static string sPath = @"c:\p2p_debug";
13        private static string sFileName = "p2p_debug";
14        private static string sDateTime = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString()
15            + DateTime.Now.Day.ToString() + "_" + DateTime.Now.Hour.ToString()
16            + DateTime.Now.Minute.ToString();
17
18        public static string Path
19        {
20            get { return sPath; }
21            private set 
22            { 
23                // last character must not be a Backslash!
24                if (value.Substring(value.Length - 1, 1) == @"\")
25                    sPath = value.Substring(0, value.Length - 2);
26                else
27                    sPath = value;
28            }
29        }
30
31        public static string FileName
32        {
33            get { return sFileName; }
34            private set 
35            {
36                if (value.Substring(value.Length - 3, 1) == ".")
37                    sFileName = value.Substring(0, value.Length - 3);
38                else
39                    sFileName = value;
40            }
41        }
42
43        public static StreamWriter GetDebugStreamWriter(string path, string filename)
44        {
45            Path = path;
46            FileName = filename;
47            return GetDebugStreamWriter();
48        }
49
50        public static StreamWriter GetDebugStreamWriter()
51        {
52            if (sw != null)
53                Dispose();
54
55
56            if (!Directory.Exists(sPath))
57                Directory.CreateDirectory(sPath);
58            int i = 1;
59            while (File.Exists(sPath + @"\" + sFileName + "_" + sDateTime + ".txt"))
60            {
61                FileName += FileName + "_" + i;
62                i++;
63            }
64            FileInfo fileInfo = new FileInfo(Path + @"\" + FileName + "_" + sDateTime + ".txt");
65            sw = fileInfo.CreateText();
66            return sw;
67        }
68
69        public static void Dispose()
70        {
71            if (sw != null)
72            {
73                try
74                {
75                    sw.Flush();
76                }
77                catch (Exception ex)
78                { }
79                sw.Close();
80                sw.Dispose();
81                sw = null;
82            }
83        }
84
85        // method only necessary for evaluation issues
86        public static string GetTimeStamp()
87        {
88            DateTime now = DateTime.Now;
89            StringBuilder sbTimeStamp = new StringBuilder();
90
91            if (now.Hour <= 9)
92                sbTimeStamp.Append("0");
93            sbTimeStamp.Append(now.Hour.ToString() + ".");
94            if (now.Minute <= 9)
95                sbTimeStamp.Append("0");
96            sbTimeStamp.Append(now.Minute.ToString() + ".");
97            if (now.Second <= 9)
98                sbTimeStamp.Append("0");
99            sbTimeStamp.Append(now.Second.ToString() + ":");
100            if (now.Millisecond <= 9)
101                sbTimeStamp.Append("00");
102            else if (now.Millisecond <= 99)
103                sbTimeStamp.Append("0");
104            sbTimeStamp.Append(now.Millisecond.ToString());
105
106            return sbTimeStamp.ToString();
107        }
108    }
109}
Note: See TracBrowser for help on using the repository browser.