コード例 #1
0
        public void FileInfoReturnsCorrectDirectoryForLongPathFile()
        {
            Assert.IsTrue(uncDirectory.Exists());
            String tempLongPathFilename;

            do
            {
                tempLongPathFilename = uncDirectory.Combine(Path.GetRandomFileName());
            } while (File.Exists(tempLongPathFilename));

            Assert.IsFalse(File.Exists(tempLongPathFilename));

            using (var writer = File.CreateText(tempLongPathFilename)) {
                writer.WriteLine("test");
            }

            try {
                Assert.IsTrue(File.Exists(tempLongPathFilename));
                var fileInfo = new FileInfo(tempLongPathFilename);
                Assert.AreEqual(uncDirectory, fileInfo.Directory.FullName);
                Assert.AreEqual(uncDirectory.GetFileName(), fileInfo.Directory.Name);
            }
            finally {
                File.Delete(tempLongPathFilename);
            }
        }
コード例 #2
0
        public void TestCreateTextAndWrite()
        {
            Assert.IsTrue(longPathDirectory.Exists());
            String tempLongPathFilename;

            do
            {
                tempLongPathFilename = longPathDirectory.Combine(Path.GetRandomFileName());
            } while (File.Exists(tempLongPathFilename));

            Assert.IsFalse(File.Exists(tempLongPathFilename));

            const String fileText = "test";

            using (var writer = File.CreateText(tempLongPathFilename)) {
                writer.WriteLine(fileText);
            }

            try {
                Assert.IsTrue(File.Exists(tempLongPathFilename));
                var fileInfo = new FileInfo(tempLongPathFilename);
                Assert.AreEqual(fileText.Length + Environment.NewLine.Length, fileInfo.Length);
            }
            finally {
                File.Delete(tempLongPathFilename);
            }
        }
コード例 #3
0
        public void TestInUseMove()
        {
            const Boolean recursive = true;

#if SHORT_SOURCE
            var tempPathFilename1 = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), System.IO.Path.GetRandomFileName());
            System.IO.Directory.CreateDirectory(tempPathFilename1);
            Assert.IsTrue(System.IO.Directory.Exists(Path.GetFullPath(tempPathFilename1)));
            var tempPathFilename2 = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), System.IO.Path.GetRandomFileName());
            System.IO.Directory.CreateDirectory(tempPathFilename2);
            Assert.IsTrue(System.IO.Directory.Exists(System.IO.Path.GetFullPath(tempPathFilename2)));
            try
            {
                using (
                    var writer = System.IO.File.CreateText(System.IO.Path.Combine(tempPathFilename2, "TestInUseMove")))
                {
                    string destinationPath =
                        System.IO.Path.GetFullPath(System.IO.Path.Combine(tempPathFilename1, System.IO.Path.GetFileName(tempPathFilename2)));
                    System.IO.Directory.Move(tempPathFilename2, destinationPath);
                    Assert.IsTrue(System.IO.Directory.Exists(System.IO.Path.GetFullPath(tempPathFilename1)));
                    Assert.IsFalse(System.IO.Directory.Exists(System.IO.Path.GetFullPath(tempPathFilename2)));
                    Assert.IsTrue(System.IO.Directory.Exists(destinationPath));
                }
            }
            catch (Exception e)
            {
                throw;
            }
            finally
            {
                Directory.Delete(tempPathFilename1, recursive);
                Directory.Delete(tempPathFilename2, recursive);
            }
#endif
            var tempLongPathFilename1 = longPathDirectory.Combine(Pri.LongPath.Path.GetRandomFileName());
            tempLongPathFilename1.CreateDirectory();
            Assert.IsTrue(tempLongPathFilename1.GetFullPath().Exists());
            var tempLongPathFilename2 = longPathDirectory.Combine(Pri.LongPath.Path.GetRandomFileName());
            tempLongPathFilename2.CreateDirectory();
            Assert.IsTrue(tempLongPathFilename2.GetFullPath().Exists());

            try {
                using (var writer = File.CreateText(tempLongPathFilename2.Combine("TestInUseMove"))) {
                    var destinationPath = tempLongPathFilename1.Combine(tempLongPathFilename2.GetFileName()).GetFullPath();
                    Assert.Throws <IOException>(() => Directory.Move(tempLongPathFilename2, destinationPath));
                }
            }
            finally {
                Directory.Delete(tempLongPathFilename1, recursive);
                Directory.Delete(tempLongPathFilename2, recursive);
            }
        }
コード例 #4
0
        public void TestReadAllTextNewFile()
        {
            var          filename = new StringBuilder(uncDirectory).Append(@"\").Append("file3.ext").ToString();
            const String fileText = "test";

            using (File.CreateText(filename)) { }

            try {
                File.WriteAllText(filename, fileText);
                Assert.AreEqual(fileText, File.ReadAllText(filename));
            }
            finally {
                File.Delete(filename);
            }
        }
コード例 #5
0
        public void TestReadAllTextWithEncoding()
        {
            var tempLongPathFilename = new StringBuilder(uncDirectory).Append(@"\").Append("file26.ext").ToString();
            var fi = new FileInfo(tempLongPathFilename);

            try {
                using (var streamWriter = File.CreateText(tempLongPathFilename, Encoding.Unicode)) {
                    streamWriter.WriteLine("file26");
                }

                Assert.AreEqual("file26" + Environment.NewLine, File.ReadAllText(fi.FullName, Encoding.Unicode));
            }
            finally {
                File.Delete(tempLongPathFilename);
            }
        }
コード例 #6
0
        public void SetUp()
        {
            rootTestDir       = TestContext.CurrentContext.TestDirectory;
            longPathDirectory = Util.MakeLongPath(rootTestDir);

            longPathRoot = longPathDirectory.Substring(0,
                                                       TestContext.CurrentContext.TestDirectory.Length + 1 + longPathDirectory.Substring(rootTestDir.Length + 1).IndexOf('\\'));

            longPathDirectory.CreateDirectory();
            Debug.Assert(longPathDirectory.Exists());
            longPathFilename = new StringBuilder(longPathDirectory).Append(@"\").Append(Filename).ToString();

            using (var writer = File.CreateText(longPathFilename)) {
                writer.WriteLine("test");
            }

            Debug.Assert(File.Exists(longPathFilename));
        }
コード例 #7
0
        public void TestOpenCreatesEmpty()
        {
            var tempLongPathFilename = longPathDirectory.Combine(Path.GetRandomFileName());

            try {
                using (var writer = File.CreateText(tempLongPathFilename)) {
                    writer.WriteLine("test");
                }

                var fi = new FileInfo(tempLongPathFilename);

                using (var fileStream = fi.Open(FileMode.Append, FileAccess.Read, FileShare.Read)) {
                    Assert.AreEqual(-1, fileStream.ReadByte());
                }
            }
            finally {
                File.Delete(tempLongPathFilename);
            }
        }
コード例 #8
0
        public void TestCreateText()
        {
            var          filename = new StringBuilder(uncDirectory).Append(@"\").Append("file3.ext").ToString();
            const String fileText = "test";

            using (var writer = File.CreateText(filename)) {
                writer.WriteLine(fileText);
            }

            try {
                Assert.IsTrue(File.Exists(filename));

                using (var reader = File.OpenText(filename)) {
                    var text = reader.ReadLine();
                    Assert.AreEqual(fileText, text);
                }
            }
            finally {
                File.Delete(filename);
            }
        }
コード例 #9
0
        public void TestAppendText()
        {
            var filename = new StringBuilder(longPathDirectory).Append(@"\").Append("file16.ext").ToString();

            using (var writer = File.CreateText(filename)) {
                writer.Write("start");
            }

            Assert.IsTrue(File.Exists(filename));

            try {
                using (var writer = new FileInfo(filename).AppendText()) {
                    writer.WriteLine("end");
                }

                using (var reader = File.OpenText(filename)) {
                    var text = reader.ReadLine();
                    Assert.AreEqual("startend", text);
                }
            }
            finally {
                File.Delete(filename);
            }
        }
コード例 #10
0
        public void CanCreateFileInfoWithLongPathFile()
        {
            String tempLongPathFilename;

            do
            {
                tempLongPathFilename = longPathDirectory.Combine(Path.GetRandomFileName());
            } while (File.Exists(tempLongPathFilename));

            Assert.IsFalse(File.Exists(tempLongPathFilename));

            using (var writer = File.CreateText(tempLongPathFilename)) {
                writer.WriteLine("test");
            }

            try {
                Assert.IsTrue(File.Exists(tempLongPathFilename));
                var fileInfo = new FileInfo(tempLongPathFilename);
                Assert.IsNotNull(fileInfo);                   // just to use fileInfo variable
            }
            finally {
                File.Delete(tempLongPathFilename);
            }
        }