Beispiel #1
0
    private static void doCopyDir(string sourceFolder, string destFolder, bool ovewriteExisting)
    {
        // https://stackoverflow.com/a/3911658/107625

        if (!Directory.Exists(destFolder))
        {
            Directory.CreateDirectory(destFolder);
        }

        // Get Files & Copy
        var files = Directory.GetFiles(sourceFolder);

        foreach (var file in files)
        {
            var name = Path.GetFileName(file);

            // ADD Unique File Name Check to Below.
            var dest = ZspPathHelper.Combine(destFolder, name);
            File.Copy(file, dest, ovewriteExisting);
        }

        // Get dirs recursively and copy files
        var folders = Directory.GetDirectories(sourceFolder);

        foreach (var folder in folders)
        {
            var name = Path.GetFileName(folder);
            var dest = ZspPathHelper.Combine(destFolder, name);
            doCopyDir(folder, dest, ovewriteExisting);
        }
    }
Beispiel #2
0
        public void TestTilde()
        {
            // https://github.com/UweKeim/ZetaLongPaths/issues/24

            var path1 = ZspIOHelper.GetTempDirectory().CombineDirectory(Guid.NewGuid().ToString()).CheckCreate();
            var path2 = Directory.CreateDirectory(ZspPathHelper.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()));

            try
            {
                var p1 = path1.CombineDirectory(@"a~b").CheckCreate();
                var p2 = Directory.CreateDirectory(ZspPathHelper.Combine(path2.FullName, @"a~b")).FullName;

                var f1 = p1.CombineFile("1.txt");
                f1.WriteAllText("1");

                var f2 = ZspPathHelper.Combine(p2, "1.txt");
                File.WriteAllText(f2, "1");

                foreach (var file in p1.GetFiles())
                {
                    Console.WriteLine(file.FullName);
                }

                foreach (var file in Directory.GetFiles(p2))
                {
                    Console.WriteLine(file);
                }
            }
            finally
            {
                path1.SafeDelete();
                path2.Delete(true);
            }
        }
Beispiel #3
0
        public void TestAttributes()
        {
            var tempFolder = Environment.ExpandEnvironmentVariables("%temp%");

            Assert.IsTrue(Directory.Exists(tempFolder));

            var tempPath = ZspPathHelper.Combine(tempFolder, "ZspTest");

            try
            {
                Directory.CreateDirectory(tempPath);
                Assert.IsTrue(Directory.Exists(tempPath));

                var filePath = ZspPathHelper.Combine(tempPath, "text.attributes.tests");
                using (var textStream = new StreamWriter(new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write)))
                {
                    textStream.WriteLine("Zeta Long Attribute Extended testing...");
                    textStream.Flush();
                    //textStream.Close();
                    //fileHandle.Close();
                }

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

                // --

                var now = DateTime.Now;

                AssertOwn.DoesNotThrow(delegate { File.SetLastAccessTime(filePath, now); });
                AssertOwn.DoesNotThrow(delegate { File.SetLastWriteTime(filePath, now); });
                AssertOwn.DoesNotThrow(delegate { File.SetCreationTime(filePath, now); });

                Assert.AreEqual(File.GetLastAccessTime(filePath), now);
                Assert.AreEqual(File.GetLastWriteTime(filePath), now);
                Assert.AreEqual(File.GetCreationTime(filePath), now);
            }
            finally
            {
                Directory.Delete(tempPath, true);
            }
        }
Beispiel #4
0
        public void TestGeneral()
        {
            var tempFolder = Environment.ExpandEnvironmentVariables("%temp%");

            Assert.IsTrue(Directory.Exists(tempFolder));

            var tempPath = ZspPathHelper.Combine(tempFolder, "ZspTest");

            try
            {
                Directory.CreateDirectory(tempPath);
                Assert.IsTrue(Directory.Exists(tempPath));

                var filePath = ZspPathHelper.Combine(tempPath, "text.zsp");
                using (var textStream = new StreamWriter(new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write)))
                {
                    textStream.WriteLine("Zeta Short Paths Extended testing...");
                    textStream.Flush();
                }

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

                var m = ZspIOHelper.GetFileLength(filePath);
                Assert.IsTrue(m > 0);
                Assert.IsTrue(m == new FileInfo(filePath).Length);

                Assert.IsTrue(File.Exists(@"c:\Windows\notepad.exe"));
                Assert.IsFalse(File.Exists(@"c:\dslfsdjklfhsd\kjsaklfjd.exe"));
                Assert.IsFalse(File.Exists(@"c:\ablage"));

                Assert.IsFalse(Directory.Exists(@"c:\Windows\notepad.exe"));
                Assert.IsTrue(Directory.Exists(@"c:\Windows"));
                Assert.IsTrue(Directory.Exists(@"c:\Windows\"));
                Assert.IsFalse(Directory.Exists(@"c:\fkjhskfsdhfjkhsdjkfhsdkjfh"));
                Assert.IsFalse(Directory.Exists(@"c:\fkjhskfsdhfjkhsdjkfhsdkjfh\"));

                // --

                AssertOwn.DoesNotThrow(() => File.SetLastWriteTime(filePath, new DateTime(1986, 1, 1)));
                AssertOwn.DoesNotThrow(() => File.SetLastAccessTime(filePath, new DateTime(1987, 1, 1)));
                AssertOwn.DoesNotThrow(() => File.SetCreationTime(filePath, new DateTime(1988, 1, 1)));

                AssertOwn.DoesNotThrow(() => Directory.SetLastWriteTime(tempPath, new DateTime(1986, 1, 1)));
                AssertOwn.DoesNotThrow(() => Directory.SetLastAccessTime(tempPath, new DateTime(1987, 1, 1)));
                AssertOwn.DoesNotThrow(() => Directory.SetCreationTime(tempPath, new DateTime(1988, 1, 1)));

                var anotherFile = ZspPathHelper.Combine(tempPath, "test2.zsp");
                File.WriteAllText(anotherFile, @"הצ�.");
                Assert.IsTrue(File.Exists(anotherFile));

                var time = File.GetLastWriteTime(filePath);
                Assert.IsTrue(time > DateTime.MinValue);

                var l = ZspIOHelper.GetFileLength(anotherFile);
                Assert.IsTrue(l > 0);
            }
            finally
            {
                Directory.Delete(tempPath, true);
            }
        }