Example #1
0
        public void CopyTo(DirectoryName path)
        {
            //refactor this out?
            if (!System.IO.Directory.Exists(path.GetPath()))
            {
                System.IO.Directory.CreateDirectory(path.GetPath());
            }

            // Copy all files.
            var files = GetFiles();

            foreach (var file in files)
            {
                var fileDestination = FileName.GetFileName(path, file.Name.GetName());
                file.CopyTo(fileDestination);
            }

            // Process subdirectories.
            var dirs = GetDirectories();

            foreach (var dir in dirs)
            {
                var destinationDir = DirectoryName.GetDirectoryName(path, dir.Name.GetName());
                dir.CopyTo(destinationDir);
            }
        }
Example #2
0
        public ZipFileDirectory(PathName pathName)
        {
            Name   = DirectoryName.GetDirectoryName(pathName);
            _parse = Parse;

            _parse();
        }
Example #3
0
        public OpcFileDirectory(PathName pathName)
        {
            _directories = new Dictionary <string, OpcDirectory>();
            _files       = new Dictionary <string, OpcFile>();

            Name = DirectoryName.GetDirectoryName(pathName);

            Parse();
        }
Example #4
0
        public void GivenADirectoryWithAFile()
        {
            _fs  = new DotNetFileSystem();
            _dir = new DotNetDirectory(DirectoryName.GetDirectoryName("bob"));
            var file = _dir.GetChildFile("test.txt");

            _fs.CreateDirectory(_dir);
            _fs.CreateFile(file);
        }
Example #5
0
        public Directory GetChildDirectory(string name)
        {
            if (_directories.ContainsKey(name))
            {
                return(_directories[name]);
            }

            return(new ZippedDirectory(DirectoryName.GetDirectoryName(Name, name), this, false));
        }
Example #6
0
        void Parse()
        {
            using (var stream = System.IO.File.OpenRead(Name.GetPath()))
            {
                var input = new ZipInputStream(stream);

                ZipEntry entry;
                while ((entry = input.GetNextEntry()) != null)
                {
                    Trace.WriteLine("Reading Entry: " + entry.FileName);
                    var name = entry.FileName.Split('/');

                    if (name.Length == 1) // a file
                    {
                        byte[] data = input.ReadToEnd();
                        Trace.WriteLine("Read: " + data.Length + " bytes");
                        var fn = FileName.GetFileName(this.Name, name[0]);
                        _files.Add(name[0], new ZippedFile(fn, data));
                    }
                    else
                    {
                        var first  = name.First();
                        var parent = new ZippedDirectory(DirectoryName.GetDirectoryName(this.Name, first), this);
                        _directories.Add(first, parent);
                        var rest  = name.Skip(1).Take(name.Length - 2);
                        var queue = new Queue <string>(rest);

                        foreach (var item in queue)
                        {
                            var dir = new ZippedDirectory(DirectoryName.GetDirectoryName(parent.Name, item), parent);
                            parent = dir;
                        }
                        var file = name.Last();

                        byte[] data = input.ReadToEnd();
                        Trace.WriteLine("Read: " + data.Length + " bytes");
                        //neds to be added
                        var zipfile = new ZippedFile(FileName.GetFileName(parent.Name, file), data);
                        parent.AddFile(file, zipfile);
                    }
                }
            }
            _parse = () => { };
        }
Example #7
0
 public void Copy()
 {
     _dir.CopyTo(DirectoryName.GetDirectoryName("copy"));
     _fs.DirectoryExists("copy").ShouldBeTrue();
     _fs.GetDirectory("copy").GetChildFile("test.txt").Exists().ShouldBeTrue();
 }
Example #8
0
 public void When_you_get_a_directory_that_DOESNT_exist()
 {
     _fileName = DirectoryName.GetDirectoryName(".\\doesntexist");
 }