public void MoveFile(NewFileSystemDelegate fsFactory)
        {
            DiscFileSystem fs = fsFactory();

            DiscFileInfo fi = fs.GetFileInfo("foo.txt");

            using (Stream s = fi.Create())
            {
                for (int i = 0; i < 10; ++i)
                {
                    s.Write(new byte[111], 0, 111);
                }
            }
            fi.Attributes = FileAttributes.Hidden | FileAttributes.System;

            fi.MoveTo("foo2.txt");

            fi = fs.GetFileInfo("foo2.txt");
            Assert.IsTrue(fi.Exists);
            Assert.AreEqual(1110, fi.Length);
            Assert.AreEqual(FileAttributes.Hidden | FileAttributes.System, fi.Attributes);

            fi = fs.GetFileInfo("foo.txt");
            Assert.IsFalse(fi.Exists);
        }