ICSharpCode.SharpZipLib.Zip.ZipNameTransform.MakeValidName C# (CSharp) Method

MakeValidName() static private method

Force a name to be valid by replacing invalid characters with a fixed value
static private MakeValidName ( string name, char replacement ) : string
name string The name to force valid
replacement char The replacement character to use.
return string
        static string MakeValidName(string name, char replacement)
        {
            int index = name.IndexOfAny(InvalidEntryChars);
            if (index >= 0) {
                var builder = new StringBuilder(name);

                while (index >= 0) {
                    builder[index] = replacement;

                    if (index >= name.Length) {
                        index = -1;
                    } else {
                        index = name.IndexOfAny(InvalidEntryChars, index + 1);
                    }
                }
                name = builder.ToString();
            }

            if (name.Length > 0xffff) {
                throw new PathTooLongException();
            }

            return name;
        }

Usage Example

Exemplo n.º 1
0
 // Token: 0x06000AC6 RID: 2758 RVA: 0x00039D5C File Offset: 0x00037F5C
 public string TransformFile(string name)
 {
     if (name != null)
     {
         string text = name.ToLower();
         if (this.trimPrefix_ != null && text.IndexOf(this.trimPrefix_) == 0)
         {
             name = name.Substring(this.trimPrefix_.Length);
         }
         name = name.Replace("\\", "/");
         name = WindowsPathUtils.DropPathRoot(name);
         while (name.Length > 0)
         {
             if (name[0] != '/')
             {
                 break;
             }
             name = name.Remove(0, 1);
         }
         while (name.Length > 0 && name[name.Length - 1] == '/')
         {
             name = name.Remove(name.Length - 1, 1);
         }
         for (int i = name.IndexOf("//"); i >= 0; i = name.IndexOf("//"))
         {
             name = name.Remove(i, 1);
         }
         name = ZipNameTransform.MakeValidName(name, '_');
     }
     else
     {
         name = string.Empty;
     }
     return(name);
 }