Пример #1
0
        /// <summary>Test the capability of setting the working directory.</summary>
        /// <exception cref="System.IO.IOException"/>
        public virtual void TestWorkingDirectory()
        {
            Path origDir = fileSys.GetWorkingDirectory();
            Path subdir  = new Path(TestRootDir, "new");

            try
            {
                // make sure it doesn't already exist
                Assert.True(!fileSys.Exists(subdir));
                // make it and check for it
                Assert.True(fileSys.Mkdirs(subdir));
                Assert.True(fileSys.IsDirectory(subdir));
                fileSys.SetWorkingDirectory(subdir);
                // create a directory and check for it
                Path dir1 = new Path("dir1");
                Assert.True(fileSys.Mkdirs(dir1));
                Assert.True(fileSys.IsDirectory(dir1));
                // delete the directory and make sure it went away
                fileSys.Delete(dir1, true);
                Assert.True(!fileSys.Exists(dir1));
                // create files and manipulate them.
                Path   file1    = new Path("file1");
                Path   file2    = new Path("sub/file2");
                string contents = FileSystemTestHelper.WriteFile(fileSys, file1, 1);
                fileSys.CopyFromLocalFile(file1, file2);
                Assert.True(fileSys.Exists(file1));
                Assert.True(fileSys.IsFile(file1));
                CleanupFile(fileSys, file2);
                fileSys.CopyToLocalFile(file1, file2);
                CleanupFile(fileSys, file2);
                // try a rename
                fileSys.Rename(file1, file2);
                Assert.True(!fileSys.Exists(file1));
                Assert.True(fileSys.Exists(file2));
                fileSys.Rename(file2, file1);
                // try reading a file
                InputStream stm       = fileSys.Open(file1);
                byte[]      buffer    = new byte[3];
                int         bytesRead = stm.Read(buffer, 0, 3);
                Assert.Equal(contents, Runtime.GetStringForBytes(buffer
                                                                 , 0, bytesRead));
                stm.Close();
            }
            finally
            {
                fileSys.SetWorkingDirectory(origDir);
            }
        }