Example #1
0
        private static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
        {
            var directoryInfo1 = new DirectoryInfo(sourceDirName);

            DirectoryInfo[] directories;
            try
            {
                directories = directoryInfo1.GetDirectories();
                if (!directoryInfo1.Exists)
                {
                    throw new DirectoryNotFoundException("Source directory does not exist or could not be found: " + sourceDirName);
                }
            }
            catch (Exception ex)
            {
                throw new DirectoryNotFoundException("Source directory does not exist or could not be found: " + sourceDirName, ex);
            }
            if (!Directory.Exists(destDirName))
            {
                Directory.CreateDirectory(destDirName);
            }

            try
            {
                new DirectoryInfo(destDirName).Attributes &= ~FileAttributes.ReadOnly;
            }
            catch (Exception ex)
            {
            }
            foreach (FileInfo file in directoryInfo1.GetFiles())
            {
                try
                {
                    file.Attributes &= ~FileAttributes.ReadOnly;
                }
                catch (Exception ex)
                {
                }
                try
                {
                    var destFileName = Path.Combine(destDirName, file.Name);
                    file.CopyTo(destFileName, true);
                }
                catch (Exception ex)
                {
                }
            }
            if (!copySubDirs)
            {
                return;
            }

            foreach (DirectoryInfo directoryInfo2 in directories)
            {
                var destDirName1 = Path.Combine(destDirName, directoryInfo2.Name);
                SplashFormFirstRun.DirectoryCopy(directoryInfo2.FullName, destDirName1, copySubDirs);
            }
        }
Example #2
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Stop();
            timer1.Enabled = false;
            var publicDataFolder = Paths.PublicDataFolder;

            SplashFormFirstRun.DirectoryCopy(Path.Combine(Paths.ResourceFolder, "Data"), Path.Combine(publicDataFolder, "Data"), true);
            SplashFormFirstRun.DirectoryCopy(Path.Combine(Paths.ResourceFolder, "MyLibrary"), Path.Combine(publicDataFolder, "MyLibrary"), true);
            SplashFormFirstRun.DirectoryCopy(Path.Combine(Paths.ResourceFolder, "Utility"), Path.Combine(publicDataFolder, "Utility"), true);
            SplashFormFirstRun.DirectoryCopy(Path.Combine(Paths.ResourceFolder, "Working"), Path.Combine(publicDataFolder, "Working"), true);
            var binaryWriter = new BinaryWriter(new FileStream(Path.Combine(publicDataFolder, "version.info"), FileMode.Create));

            binaryWriter.Write(M3D.Spooling.Version.Client_Version.major);
            binaryWriter.Write(M3D.Spooling.Version.Client_Version.minor);
            binaryWriter.Write(M3D.Spooling.Version.Client_Version.build);
            binaryWriter.Write(M3D.Spooling.Version.Client_Version.hotfix);
            binaryWriter.Close();
            Hide();
            Close();
        }