コード例 #1
0
        private int getLatestVersion(string file)
        {
            int version = 0;

            FilenameAndVersion original = new FilenameAndVersion(Path.GetFileNameWithoutExtension(file), 0);

            string dir = Path.GetDirectoryName(file);

            foreach (string f in Directory.GetFiles(dir))
            {
                FilenameAndVersion current = new FilenameAndVersion(f);

                if (original.filename != current.filename)
                {
                    continue;
                }

                if (current.version > version)
                {
                    version = current.version;
                }
            }

            return(version);
        }
コード例 #2
0
        private void createVersion(string file)
        {
            int latestVersion = getLatestVersion(file);

            string fnm = Path.GetFileNameWithoutExtension(file);
            string ext = Path.GetExtension(file);
            string dir = Path.GetDirectoryName(file);
            string cpy = null;

            if (latestVersion == 0)
            {
                cpy = Path.Combine(dir, fnm + ".1" + ext);
            }
            else
            {
                FilenameAndVersion fileVersionned = new FilenameAndVersion(file);
                cpy = Path.Combine(dir, fileVersionned.filename + '.' + (latestVersion + 1) + ext);
            }

            File.Copy(file, cpy, true);
        }