/// <summary>
        /// Loads a folder from the file directory into a VersionData
        /// </summary>
        /// <param name="dirPath">The absolute path to the version directory in which all files are contained</param>
        /// <param name="filepath">The relative path to a file or directory from dirpath</param>
        /// <param name="loadData">Whether or not to read the files</param>
        /// <param name="directory">The content directory from which to read</param>
        /// <param name="changelog">An optional Changelog parameter to fill in hashes</param>
        /// <returns></returns>
        private static VersionData LoadFile(string dirPath, string filepath, bool loadData,
                                            DirectoryStructure directory, Changelog changelog)
        {
            string path     = Path.Combine(dirPath, filepath);
            string filename = Path.GetFileName(path);

            if (loadData)
            {
                FileStream fs = new FileStream(path, FileMode.Open);
                if (changelog == null)
                {
                    return(new VersionData(filename, fs));
                }
                else
                {
                    string hash = changelog.GetCachedHash(filepath);
                    return(new VersionData(filename, fs, hash));
                }
            }
            else
            {
                string versionHash = Path.GetFileName(dirPath);
                if (changelog == null)
                {
                    return(VersionDataProxy.Create(versionHash, filepath, filename, directory));
                }
                else
                {
                    string hash = changelog.GetCachedHash(filepath);
                    return(VersionDataProxy.Create(versionHash, filepath, filename, directory, hash));
                }
            }
        }
Example #2
0
 public override string GetCachedHash(string filepath)
 {
     if (changelog == null)
     {
         Load();
     }
     return(changelog.GetCachedHash(filepath));
 }
        /// <summary>
        /// Loads a folder from the file directory into a VersionData
        /// </summary>
        /// <param name="dirPath">The absolute path to the version directory in which all files are contained</param>
        /// <param name="filePath">The relative path to a file or directory from dirpath</param>
        /// <param name="filename">The name of the folder to load</param>
        /// <param name="loadData">Whether or not to read the files</param>
        /// <param name="directory">The content directory from which to read</param>
        /// <param name="changelog">An optional Changelog parameter to fill in hashes</param>
        /// <returns></returns>
        private static VersionData LoadDirectory(string dirPath, string filePath, string filename, bool loadData,
                                                 DirectoryStructure directory, Changelog changelog = null)
        {
            VDKeyedCollection datas = GetVersionDatas(dirPath, filePath, loadData, directory, changelog);

            if (changelog == null)
            {
                return(new VersionData(filename, datas));
            }
            else
            {
                string hash = changelog.GetCachedHash(filePath);
                return(new VersionData(filename, datas, hash));
            }
        }