Beispiel #1
0
        /// <summary>
        /// Writes Detector xml for scalar detectors, writes Detector xml and
        /// binary for 1D and larger detectors.  Detector.Name is used for filename.
        /// </summary>
        /// <param name="detector">IDetector being written.</param>
        /// <param name="folderPath">location of written file.</param>
        public static void WriteDetectorToFile(IDetector detector, string folderPath)
        {
            try
            {
                // allow null folderPath in case writing to isolated storage
                string filePath = folderPath;
                if (folderPath == "")
                {
                    filePath = detector.Name;
                }
                else
                {
                    filePath = folderPath + @"/" + detector.Name;

                    // desktop folder
                    FileIO.CreateDirectory(folderPath);
                }

                FileIO.WriteToJson(detector, filePath + ".txt");
                var binaryArraySerializers = detector.GetBinarySerializers();
                if (binaryArraySerializers == null)
                {
                    return;
                }

                foreach (var binaryArraySerializer in binaryArraySerializers)
                {
                    if (binaryArraySerializer == null)
                    {
                        continue;
                    }

                    // Create a file to write binary data
                    using (Stream s = StreamFinder.GetFileStream(filePath + binaryArraySerializer.FileTag, FileMode.OpenOrCreate))
                    {
                        if (s == null)
                        {
                            continue;
                        }

                        using (BinaryWriter bw = new BinaryWriter(s))
                        {
                            binaryArraySerializer.WriteData(bw);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Problem writing detector information to file.\n\nDetails:\n\n" + e + "\n");
            }
        }