Beispiel #1
0
        /// <summary>
        /// Call this method to force PathManager to create folders that it
        /// is referring to. This method call throws exception if any creation
        /// fails.
        /// </summary>
        /// <param name="exceptions">The output list of exception, if any of
        /// the target directories cannot be created during this call.</param>
        internal void EnsureDirectoryExistence(List <Exception> exceptions)
        {
            if (!RootDirectories.Any())
            {
                throw new InvalidOperationException(
                          "At least one custom package directory must be specified");
            }

            if (exceptions == null)
            {
                throw new ArgumentNullException("exceptions");
            }

            exceptions.Clear();

            // User specific data folders.
            exceptions.Add(PathHelper.CreateFolderIfNotExist(userDataDir));
            exceptions.Add(PathHelper.CreateFolderIfNotExist(DefaultUserDefinitions));
            exceptions.Add(PathHelper.CreateFolderIfNotExist(logDirectory));
            exceptions.Add(PathHelper.CreateFolderIfNotExist(DefaultPackagesDirectory));
            exceptions.Add(PathHelper.CreateFolderIfNotExist(backupDirectory));

            // Common data folders for all users.
            exceptions.Add(PathHelper.CreateFolderIfNotExist(commonDataDir));
            exceptions.Add(PathHelper.CreateFolderIfNotExist(commonDefinitions));

            exceptions.RemoveAll(x => x == null); // Remove all null entries.
        }