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); } }
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); } }
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); } }
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); } }