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

TransformFile() public method

Transform a windows file name according to the Zip file naming conventions.
public TransformFile ( string name ) : string
name string The file name to transform.
return string
        public string TransformFile(string name)
        {
            if (name != null) {
                string lowerName = name.ToLower();
                if ((trimPrefix_ != null) && (lowerName.IndexOf(trimPrefix_, StringComparison.Ordinal) == 0)) {
                    name = name.Substring(trimPrefix_.Length);
                }

                name = name.Replace(@"\", "/");
                name = WindowsPathUtils.DropPathRoot(name);

                // Drop any leading slashes.
                while ((name.Length > 0) && (name[0] == '/')) {
                    name = name.Remove(0, 1);
                }

                // Drop any trailing slashes.
                while ((name.Length > 0) && (name[name.Length - 1] == '/')) {
                    name = name.Remove(name.Length - 1, 1);
                }

                // Convert consecutive // characters to /
                int index = name.IndexOf("//", StringComparison.Ordinal);
                while (index >= 0) {
                    name = name.Remove(index, 1);
                    index = name.IndexOf("//", StringComparison.Ordinal);
                }

                name = MakeValidName(name, '_');
            } else {
                name = string.Empty;
            }
            return name;
        }

Usage Example

Esempio n. 1
0
        public void NameTransforms()
        {
            INameTransform t = new ZipNameTransform(@"C:\Slippery");
            Assert.AreEqual("Pongo/Directory/", t.TransformDirectory(@"C:\Slippery\Pongo\Directory"), "Value should be trimmed and converted");
            Assert.AreEqual("PoNgo/Directory/", t.TransformDirectory(@"c:\slipperY\PoNgo\Directory"), "Trimming should be case insensitive");
            Assert.AreEqual("slippery/Pongo/Directory/", t.TransformDirectory(@"d:\slippery\Pongo\Directory"), "Trimming should be case insensitive");

            Assert.AreEqual("Pongo/File", t.TransformFile(@"C:\Slippery\Pongo\File"), "Value should be trimmed and converted");
        }
All Usage Examples Of ICSharpCode.SharpZipLib.Zip.ZipNameTransform::TransformFile