private void LoadProjects(string rootPath)
        {
            string[] file2s = Directory.GetFiles(rootPath, "*.fobj3");
            if (file2s != null && file2s.Length > 0)
            {
                bool loaded = false;

                foreach (string file in file2s)
                {
                    StreamReader writer = null;
                    try
                    {
                        writer = new StreamReader(file,
                                                  Encoding.UTF8, false);
                        var           serializer    = new Newtonsoft.Json.JsonSerializer();
                        FictionObject fictionObject = (FictionObject)serializer.Deserialize(writer, typeof(FictionObject));
                        fictionObject.RecalculatePreviousStepCount();
                        Add(fictionObject);
                        loaded = true;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    finally
                    {
                        if (writer != null)
                        {
                            writer.Close();
                        }
                        writer = null;
                    }
                    if (loaded)
                    {
                        return;
                    }
                }
            }
            string[] files = Directory.GetFiles(rootPath, "*.fobj");
            if (files != null && files.Length > 0)
            {
                Stream stream = null;
                foreach (string file in files)
                {
                    try
                    {
                        stream = File.Open(file, FileMode.Open);
                        BinaryFormatter bf = new BinaryFormatter();

                        FictionObject fictionObject = (FictionObject)bf.Deserialize(stream);
                        String        location      = fictionObject.Location;
                        int           lastIndex     = location.LastIndexOf("\\");
                        if (lastIndex > 0)
                        {
                            fictionObject.Location = location.Substring(lastIndex + 1);
                        }
                        else
                        {
                            fictionObject.Location = location;
                        }
                        fictionObject.RecalculatePreviousStepCount();
                        Add(fictionObject);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    finally
                    {
                        if (stream != null)
                        {
                            stream.Close();
                        }
                        stream = null;
                    }
                }
            }
        }
예제 #2
0
        private void LoadProjects(string rootPath)
        {
            string[] file2s = Directory.GetFiles(rootPath, "*.fobj3");
            if (file2s != null && file2s.Length > 0)
            {
                bool   loaded = false;
                Stream stream = null;
                foreach (string file in file2s)
                {
                    try
                    {
                        StreamReader writer = new StreamReader(file,
                                                               Encoding.UTF8, false);
                        var           serializer    = new Newtonsoft.Json.JsonSerializer();
                        FictionObject fictionObject = (FictionObject)serializer.Deserialize(writer, typeof(FictionObject));

                        //stream = File.Open(file, FileMode.Open);
                        ////BinaryFormatter bf = new BinaryFormatter();

                        ////FictionObject fictionObject = (FictionObject)bf.Deserialize(stream);
                        //var streamReader = new StreamReader(stream);
                        //var reader = new TypeSerializer<FictionObject>();
                        //FictionObject fictionObject = reader.DeserializeFromReader(streamReader);
                        fictionObject.RecalculatePreviousStepCount();
                        Add(fictionObject);
                        writer.Close();
                        loaded = true;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    finally
                    {
                        if (stream != null)
                        {
                            stream.Close();
                        }
                        stream = null;
                    }
                    if (loaded)
                    {
                        return;
                    }
                }
            }
            string[] files = Directory.GetFiles(rootPath, "*.fobj");
            if (files != null && files.Length > 0)
            {
                Stream stream = null;
                foreach (string file in files)
                {
                    try
                    {
                        stream = File.Open(file, FileMode.Open);
                        BinaryFormatter bf = new BinaryFormatter();

                        FictionObject fictionObject = (FictionObject)bf.Deserialize(stream);
                        fictionObject.RecalculatePreviousStepCount();
                        Add(fictionObject);
                    }
                    catch (Exception)
                    {
                    }
                    finally
                    {
                        if (stream != null)
                        {
                            stream.Close();
                        }
                        stream = null;
                    }
                }
            }

            /*string[] paths = Directory.GetDirectories(rootPath);
             * if(paths == null || paths.Length == 0)
             * {
             *  return;
             * }
             * foreach (string path in paths)
             * {
             *  LoadProjects(path);
             * }*/
        }