コード例 #1
0
        private bool AllFilesMatch(DirectoryInfo dirInfo)
        {
            // Rigged to process all files possible before returing the result.
            var allFilesMatch = true;

#if NET45 || NET40
            foreach (var dir in dirInfo.EnumerateDirectories())
            {
                if (!AllFilesMatch(dir))
                {
                    allFilesMatch = false;
                }
            }

            var files = new List <string>();

            foreach (var file in dirInfo.EnumerateFiles())
            {
                files.Add(file.FullName);
            }
#elif NET35 || MONO210
            foreach (var dir in dirInfo.GetDirectories())
            {
                if (!AllFilesMatch(dir))
                {
                    allFilesMatch = false;
                }
            }

            var files = new List <string>();

            foreach (var file in dirInfo.GetFiles())
            {
                files.Add(file.FullName);
            }
#endif

            foreach (var file in files)
            {
                try
                {
                    var processedName = file + ".kspd";
                    var jobj          = KspData.LoadKspFile <JObject>(file);

                    jobj.ToString(Formatting.Indented, null).WriteToFile(file + ".json");
                    KspData.SaveFile(processedName, jobj);

                    if (!FilesAreEqual(file, processedName))
                    {
                        allFilesMatch = false;
                    }
                }
                catch (Exception ex)
                {
                    Assert.Fail(ex.Message, ex);
                }
            }

            return(allFilesMatch);
        }
コード例 #2
0
        /// <summary>
        /// Adds/Updates an object of a particular ID
        /// </summary>
        /// <param name="id">Id to put</param>
        /// <param name="obj">object data</param>
        /// <returns>true=success;false=failure</returns>
        public bool Put(string id, T obj)
        {
            var info     = GetFileInfo(id);
            var savePath = info != null ? info.FullName : null;

            if (savePath != null && backup)
            {
                var count      = 0;
                var backupPath = savePath + "-BACKUP-" + DateTime.Now.ToString("yyyyMMdd_hhmmss");

                do
                {
                    count++;
                } while (File.Exists(backupPath + "_" + count));
                File.Copy(savePath, backupPath + "_" + count);
            }
            else if (savePath == null)
            {
                if (mode == FileMode.DirPerFile)
                {
                    var files   = GetFiles();
                    var saveDir = BaseUri + "\\" + id;
                    Directory.CreateDirectory(saveDir);
                    savePath = saveDir + "\\" + fileName;
                }
                else
                {
                    var files = GetFiles();
                    savePath = BaseUri + "\\" + id + fileName;
                }
            }

            KspData.SaveFile(savePath, obj, registry.Create <T>());

            return(true);
        }