public void DirectoryWithTrailingSeparators(string trailing) { // When getting strings back we should retain the root path as specified for Directory. // DirectoryInfo returns the normalized full path in all cases. // Add the trailing separator up front for Directory as we want to validate against // the path _with_ the separator on it. Creation doesn't care about trailing, and // Path.Combine doesn't change the existing separators, it just adds the canonical // separator if needed. string root = GetTestFilePath() + (IsDirectoryInfo ? "" : trailing); string rootFile = Path.Combine(root, GetTestFileName()); string subDirectory = Path.Combine(root, GetTestFileName()); string nestedFile = Path.Combine(subDirectory, GetTestFileName()); Directory.CreateDirectory(subDirectory); File.Create(rootFile).Dispose(); File.Create(nestedFile).Dispose(); // Add the trailing separator if we haven't (for DI) so we can validate that we // either retain (D) or don't retain (DI) the separators as we specified them. // Note that some of the cases actually match canonical (one standard separator) // so they never change. string[] files = GetEntries(root + (IsDirectoryInfo ? trailing : ""), "*", SearchOption.AllDirectories); FSAssert.EqualWhenOrdered(new string[] { rootFile, nestedFile }, files); }
public void HiddenFilesAreReturned() { // Note that APIs that take EnumerationOptions do NOT find hidden files by default DirectoryInfo testDirectory = Directory.CreateDirectory(GetTestFilePath()); FileInfo fileOne = new FileInfo(Path.Combine(testDirectory.FullName, GetTestFileName())); // Put a period in front to make it hidden on Unix FileInfo fileTwo = new FileInfo(Path.Combine(testDirectory.FullName, "." + GetTestFileName())); fileOne.Create().Dispose(); fileTwo.Create().Dispose(); if (PlatformDetection.IsWindows) { fileTwo.Attributes = fileTwo.Attributes | FileAttributes.Hidden; } if (TestFiles) { FSAssert.EqualWhenOrdered(new string[] { fileOne.FullName, fileTwo.FullName }, GetEntries(testDirectory.FullName)); } else { Assert.Empty(GetEntries(testDirectory.FullName)); } }
public void EnumerateDirectories_NonBreakingSpace() { DirectoryInfo rootDirectory = Directory.CreateDirectory(GetTestFilePath()); DirectoryInfo subDirectory1 = rootDirectory.CreateSubdirectory("\u00A0"); DirectoryInfo subDirectory2 = subDirectory1.CreateSubdirectory(GetTestFileName()); FSAssert.EqualWhenOrdered(new string[] { subDirectory1.FullName, subDirectory2.FullName }, Directory.EnumerateDirectories(rootDirectory.FullName, string.Empty, SearchOption.AllDirectories)); }