Exemple #1
0
		private string CreateDuplicateName(ZipWrapper zip, string filename)
        {
            if (string.IsNullOrEmpty(filename))
                return string.Empty;

			using (Chilkat.ZipEntry zipEntry = zip.GetEntryByName(filename))
            {
                if (null == zipEntry)
                    return filename;
            }

            StringBuilder newFilename;
            if (filename.Contains("(") && filename.Contains(")"))
            {
                int startIndex = filename.LastIndexOf('(') + 1;
                int endIndex = filename.IndexOf(')', startIndex);
                if (-1 != endIndex)
                {
                    string stringValue = filename.Substring(startIndex, endIndex - startIndex);

                    int count;
                    if (ConvertToInt(stringValue, out count))
                    {
                        count++;
                        newFilename = new StringBuilder(filename.Substring(0, startIndex));
                        newFilename.Append(Convert.ToString(count));
                        newFilename.Append(filename.Substring(endIndex));
                        return CreateDuplicateName(zip, newFilename.ToString());
                    }
                }
            }

            newFilename = new StringBuilder(Path.GetFileNameWithoutExtension(filename));
            newFilename.Append("(1)");
            newFilename.Append(Path.GetExtension(filename));
            return CreateDuplicateName(zip, newFilename.ToString());
        }