public void CloudFileShareListManyFiles() { CloudFileShare share = GetRandomShareReference(); try { share.Create(); List <string> fileNames = CreateFiles(share, 6000); CloudFileDirectory rootDirectory = share.GetRootDirectoryReference(); int count = 0; IEnumerable <IListFileItem> results = rootDirectory.ListFilesAndDirectories(); foreach (IListFileItem fileItem in results) { count++; Assert.IsInstanceOfType(fileItem, typeof(CloudFile)); CloudFile file = (CloudFile)fileItem; if (fileNames.Remove(file.Name)) { Assert.IsInstanceOfType(file, typeof(CloudFile)); } else { Assert.Fail("Unexpected file: " + file.Uri.AbsoluteUri); } } Assert.AreEqual(6000, count); } finally { share.DeleteIfExists(); } }
public void CloudFileDirectoryListFilesAndDirectories() { CloudFileClient client = GenerateCloudFileClient(); string name = GetRandomShareName(); CloudFileShare share = client.GetShareReference(name); try { share.Create(); if (CloudFileDirectorySetup(share)) { CloudFileDirectory topDir1 = share.GetRootDirectoryReference().GetDirectoryReference("TopDir1"); IEnumerable <IListFileItem> list1 = topDir1.ListFilesAndDirectories(); List <IListFileItem> simpleList1 = list1.ToList(); ////Check if for 3 because if there were more than 3, the previous assert would have failed. ////So the only thing we need to make sure is that it is not less than 3. Assert.IsTrue(simpleList1.Count == 3); IListFileItem item11 = simpleList1.ElementAt(0); Assert.IsTrue(item11.Uri.Equals(share.Uri + "/TopDir1/File1")); Assert.AreEqual("File1", ((CloudFile)item11).Name); IListFileItem item12 = simpleList1.ElementAt(1); Assert.IsTrue(item12.Uri.Equals(share.Uri + "/TopDir1/MidDir1")); Assert.AreEqual("MidDir1", ((CloudFileDirectory)item12).Name); IListFileItem item13 = simpleList1.ElementAt(2); Assert.IsTrue(item13.Uri.Equals(share.Uri + "/TopDir1/MidDir2")); Assert.AreEqual("MidDir2", ((CloudFileDirectory)item13).Name); CloudFileDirectory midDir2 = (CloudFileDirectory)item13; IEnumerable <IListFileItem> list2 = midDir2.ListFilesAndDirectories(); List <IListFileItem> simpleList2 = list2.ToList(); Assert.IsTrue(simpleList2.Count == 2); IListFileItem item21 = simpleList2.ElementAt(0); Assert.IsTrue(item21.Uri.Equals(share.Uri + "/TopDir1/MidDir2/EndDir1")); Assert.AreEqual("EndDir1", ((CloudFileDirectory)item21).Name); IListFileItem item22 = simpleList2.ElementAt(1); Assert.IsTrue(item22.Uri.Equals(share.Uri + "/TopDir1/MidDir2/EndDir2")); Assert.AreEqual("EndDir2", ((CloudFileDirectory)item22).Name); } } finally { share.DeleteIfExists(); } }
private void FileDirectoryEscapingTest(string directoryName, string fileName) { CloudFileClient service = GenerateCloudFileClient(); CloudFileShare share = GetRandomShareReference(); try { share.Create(); string text = Guid.NewGuid().ToString(); // Create from CloudFileShare. CloudFileDirectory directory = share.GetRootDirectoryReference().GetDirectoryReference(directoryName); directory.Create(); CloudFile originalFile = directory.GetFileReference(fileName); originalFile.Create(0); // List directories from share. IListFileItem directoryFromShareListingFiles = share.GetRootDirectoryReference().ListFilesAndDirectories().First(); Assert.AreEqual(directory.Uri, directoryFromShareListingFiles.Uri); // List files from directory. IListFileItem fileFromDirectoryListingFiles = directory.ListFilesAndDirectories().First(); Assert.AreEqual(originalFile.Uri, fileFromDirectoryListingFiles.Uri); // Check Name Assert.AreEqual <string>(fileName, originalFile.Name); // Absolute URI access from CloudFile CloudFile fileInfo = new CloudFile(originalFile.Uri, service.Credentials); fileInfo.FetchAttributes(); // Access from CloudFileDirectory CloudFileDirectory cloudFileDirectory = share.GetRootDirectoryReference().GetDirectoryReference(directoryName); CloudFile fileFromCloudFileDirectory = cloudFileDirectory.GetFileReference(fileName); Assert.AreEqual(fileInfo.Uri, fileFromCloudFileDirectory.Uri); } finally { share.Delete(); } }
public void CloudFileShareListFilesAndDirectories() { CloudFileShare share = GetRandomShareReference(); try { share.Create(); List <string> fileNames = CreateFiles(share, 3); CloudFileDirectory rootDirectory = share.GetRootDirectoryReference(); IEnumerable <IListFileItem> results = rootDirectory.ListFilesAndDirectories(); Assert.AreEqual(fileNames.Count, results.Count()); foreach (IListFileItem fileItem in results) { Assert.IsInstanceOfType(fileItem, typeof(CloudFile)); Assert.IsTrue(fileNames.Remove(((CloudFile)fileItem).Name)); } } finally { share.DeleteIfExists(); } }
private static void ListCloudFilesByDir(CloudFileDirectory dir) { var files = dir.ListFilesAndDirectories(); foreach (var file in files) { if (file is CloudFile) { cloudFiles.Add(file.Uri.LocalPath, new DataSyncFileInfo { CloudFile = (CloudFile)file }); } else if (file is CloudFileDirectory) { ListCloudFilesByDir((CloudFileDirectory)file); } else { throw new Exception($"unknown type:{file.StorageUri}"); } } }
/// <inheritdoc /> public override List<Database> OpenAllDatabases(bool update = false) { SortedSet<Database> dbSet = new SortedSet<Database>(); foreach (Database db in NewDatabases) dbSet.Add(db); foreach (DatabaseLocation location in (IEnumerable<DatabaseLocation>)DatabaseLocations) { m_databaseDir = m_rootDir.GetDirectoryReference(location.DirectoryPath); foreach (CloudFile file in m_databaseDir.ListFilesAndDirectories()) { string fileName = file.Name; int indexEnd = fileName.IndexOf('.'); string dbNumStr = fileName.Substring(0, indexEnd); UInt32 dbNum; if (UInt32.TryParse(dbNumStr, out dbNum) && dbNum >= location.StartDatabaseNumber && dbNum <= location.EndDatabaseNumber) { Database db = OpenDatabase(dbNum, update); dbSet.Add(db); } } } return dbSet.ToList<Database>(); }