Beispiel #1
0
        public void FileInfoReturnsCorrectDirectoryNameForLongPathFile()
        {
            Assert.IsTrue(Directory.Exists(longPathDirectory));
            string tempLongPathFilename;

            do
            {
                tempLongPathFilename = Path.Combine(longPathDirectory, 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(longPathDirectory, fileInfo.DirectoryName);
            }
            finally
            {
                File.Delete(tempLongPathFilename);
            }
        }
Beispiel #2
0
        public void TestCreateTextAndWrite()
        {
            Assert.IsTrue(Directory.Exists(longPathDirectory));
            string tempLongPathFilename;

            do
            {
                tempLongPathFilename = Path.Combine(longPathDirectory, 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);
            }
        }
Beispiel #3
0
        public void CanCreateFileInfoWithLongPathFile()
        {
            string tempLongPathFilename;

            do
            {
                tempLongPathFilename = Path.Combine(longPathDirectory, 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);
            }
        }
Beispiel #4
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);
            }
        }
        public void TestProblemWithSystemIoExists()
        {
            Assert.Throws <PathTooLongException>(() =>
            {
                var filename = new StringBuilder(longPathDirectory).Append(@"\").Append("file4.ext").ToString();
                using (var writer = File.CreateText(filename))
                {
                    writer.WriteLine("test");
                }
                Assert.IsTrue(File.Exists(filename));

                try
                {
                    using (var fileStream = new System.IO.FileStream(filename, FileMode.Append, FileAccess.Write, FileShare.None))
                        using (var bw = new BinaryWriter(fileStream))
                        {
                            bw.Write(10u);
                        }
                }
                finally
                {
                    File.Delete(filename);
                }
            });
        }
Beispiel #6
0
        public StreamWriter CreateText(string path)
        {
            var name = path.Split('\\').Last();

            ValidateNameLength(name);
            return(File.CreateText(path));
        }
Beispiel #7
0
        public void TestInUseMove()
        {
            const bool 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 = Path.Combine(uncDirectory, Path.GetRandomFileName());
            Directory.CreateDirectory(tempLongPathFilename1);
            Assert.IsTrue(Directory.Exists(Path.GetFullPath(tempLongPathFilename1)));
            var tempLongPathFilename2 = Path.Combine(uncDirectory, Path.GetRandomFileName());
            Directory.CreateDirectory(tempLongPathFilename2);
            Assert.IsTrue(Directory.Exists(Path.GetFullPath(tempLongPathFilename2)));
            try
            {
                using (
                    var writer = File.CreateText(Path.Combine(tempLongPathFilename2, "TestInUseMove")))
                {
                    string destinationPath =
                        Path.GetFullPath(Path.Combine(tempLongPathFilename1, Path.GetFileName(tempLongPathFilename2)));
                    Directory.Move(tempLongPathFilename2, destinationPath);
                    Assert.IsTrue(Directory.Exists(Path.GetFullPath(tempLongPathFilename1)));
                    Assert.IsFalse(Directory.Exists(Path.GetFullPath(tempLongPathFilename2)));
                    Assert.IsTrue(Directory.Exists(destinationPath));
                }
            }
            finally
            {
                Directory.Delete(tempLongPathFilename1, recursive);
                Directory.Delete(tempLongPathFilename2, recursive);
            }
        }
Beispiel #8
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('\\'));
     Directory.CreateDirectory(longPathDirectory);
     Debug.Assert(Directory.Exists(longPathDirectory));
     longPathFilename = new StringBuilder(longPathDirectory).Append(@"\").Append(Filename).ToString();
     using (var writer = File.CreateText(longPathFilename))
     {
         writer.WriteLine("test");
     }
     Debug.Assert(File.Exists(longPathFilename));
 }
Beispiel #9
0
        public void TestReadAllTextEncoding()
        {
            var          filename = new StringBuilder(longPathDirectory).Append(@"\").Append("file3.ext").ToString();
            const string fileText = "test";

            using (File.CreateText(filename))
            {
            }
            try
            {
                File.WriteAllText(filename, fileText, Encoding.Unicode);
                Assert.AreEqual(fileText, File.ReadAllText(filename, Encoding.Unicode));
            }
            finally
            {
                File.Delete(filename);
            }
        }
Beispiel #10
0
        public void TestReadAllTextWithEncoding()
        {
            var tempLongPathFilename = new StringBuilder(longPathDirectory).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);
            }
        }
Beispiel #11
0
        public void TestOpenCreatesEmpty()
        {
            var tempLongPathFilename = Path.Combine(longPathDirectory, 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);
            }
        }
Beispiel #12
0
        public void TestCreateText()
        {
            var          filename = new StringBuilder(longPathDirectory).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);
            }
        }
Beispiel #13
0
 public static StreamWriter CreateText(string path)
 {
     return(File.CreateText(path));
 }