public static CloudFileDirectory GetDirectoryReference(CloudFileDirectory parent, string path) { if (path.Contains(@"\")) { var paths = path.Split('\\'); return GetDirectoryReference(parent.GetDirectoryReference(paths.First()), string.Join(@"\", paths.Skip(1))); } else { return parent.GetDirectoryReference(path); } }
public void CloudFileDirectoryHierarchicalTraversal() { CloudFileClient client = GenerateCloudFileClient(); string name = GetRandomShareName(); CloudFileShare share = client.GetShareReference(name); ////Traverse hierarchically starting with length 1 CloudFileDirectory directory1 = share.GetRootDirectoryReference().GetDirectoryReference("Dir1"); CloudFileDirectory subdir1 = directory1.GetDirectoryReference("Dir2"); CloudFileDirectory parent1 = subdir1.Parent; Assert.AreEqual(parent1.Name, directory1.Name); CloudFileDirectory subdir2 = subdir1.GetDirectoryReference("Dir3"); CloudFileDirectory parent2 = subdir2.Parent; Assert.AreEqual(parent2.Name, subdir1.Name); CloudFileDirectory subdir3 = subdir2.GetDirectoryReference("Dir4"); CloudFileDirectory parent3 = subdir3.Parent; Assert.AreEqual(parent3.Name, subdir2.Name); CloudFileDirectory subdir4 = subdir3.GetDirectoryReference("Dir5"); CloudFileDirectory parent4 = subdir4.Parent; Assert.AreEqual(parent4.Name, subdir3.Name); }
public async Task CloudFileDirectoryFileCreateWithoutDirectoryAsync() { CloudFileClient client = GenerateCloudFileClient(); string name = GetRandomShareName(); CloudFileShare share = client.GetShareReference(name); CloudFileDirectory rootDirectory = share.GetRootDirectoryReference(); try { await share.CreateAsync(); CloudFileDirectory dir = rootDirectory.GetDirectoryReference("Dir1"); CloudFile file = dir.GetFileReference("file1"); OperationContext context = new OperationContext(); await TestHelper.ExpectedExceptionAsync( async() => await file.CreateAsync(0, null, null, context), context, "Creating a file when the directory has not been created should throw", HttpStatusCode.NotFound, "ParentNotFound"); // File creation directly in the share should pass. CloudFile file2 = rootDirectory.GetFileReference("file2"); await file2.CreateAsync(0); await dir.CreateAsync(); await file.CreateAsync(0); } finally { share.DeleteAsync().Wait(); } }
public async Task CloudFileDirectoryCreateDirectoryUsingPrefixAsync() { CloudFileClient client = GenerateCloudFileClient(); string name = GetRandomShareName(); CloudFileShare share = client.GetShareReference(name); try { await share.CreateAsync(); CloudFileDirectory dir1 = share.GetRootDirectoryReference().GetDirectoryReference("Dir1"); CloudFileDirectory dir2 = dir1.GetDirectoryReference("Dir2"); OperationContext context = new OperationContext(); await TestHelper.ExpectedExceptionAsync( async() => await dir2.CreateAsync(null, context), context, "Try to create directory hierarchy by specifying prefix", HttpStatusCode.NotFound); await dir1.CreateAsync(); await dir2.CreateAsync(); } finally { share.DeleteAsync().Wait(); } }
public void CloudFileDirectoryGetEmptySubDirectory() { CloudFileClient client = GenerateCloudFileClient(); string name = GetRandomShareName(); CloudFileShare share = client.GetShareReference(name); CloudFileDirectory root = share.GetRootDirectoryReference().GetDirectoryReference("TopDir1/"); TestHelper.ExpectedException <ArgumentException>( () => root.GetDirectoryReference(String.Empty), "Try to get a reference to an empty sub-directory"); }
public void CloudFileDirectoryGetSubdirectoryAndTraverseBackToParent() { CloudFileClient client = GenerateCloudFileClient(); string name = GetRandomShareName(); CloudFileShare share = client.GetShareReference(name); CloudFileDirectory directory = share.GetRootDirectoryReference().GetDirectoryReference("TopDir1"); CloudFileDirectory subDirectory = directory.GetDirectoryReference("MidDir1"); CloudFileDirectory parent = subDirectory.Parent; Assert.AreEqual(parent.Name, directory.Name); Assert.AreEqual(parent.Uri, directory.Uri); }
public void CloudFileShareReference() { CloudFileClient client = GenerateCloudFileClient(); CloudFileShare share = client.GetShareReference("share"); CloudFileDirectory rootDirectory = share.GetRootDirectoryReference(); CloudFileDirectory directory = rootDirectory.GetDirectoryReference("directory4"); CloudFile file = directory.GetFileReference("file2"); Assert.AreEqual(share, file.Share); Assert.AreEqual(share, rootDirectory.Share); Assert.AreEqual(share, directory.Share); Assert.AreEqual(share, directory.Parent.Share); Assert.AreEqual(share, file.Parent.Share); }
public void MyTestInitialize() { if (TestBase.FileBufferManager != null) { TestBase.FileBufferManager.OutstandingBufferCount = 0; } this.share = GetRandomShareReference(); this.share.CreateIfNotExists(); CloudFileDirectory directory = share.GetRootDirectoryReference(); this.directory = directory.GetDirectoryReference("directory"); this.directory.Create(); this.file = this.directory.GetFileReference("file"); this.file.UploadText("test"); }
public AzureSession(string connectionString, string shareName, string systemDir, int waitForLockMilliseconds = 5000, bool optimisticLocking = true, bool enableCache = true, CacheEnum objectCachingDefaultPolicy = CacheEnum.Yes) : base(systemDir, waitForLockMilliseconds, optimisticLocking, enableCache, objectCachingDefaultPolicy) { m_cloudStorageAccount = CloudStorageAccount.Parse(connectionString); if (Path.IsPathRooted(systemDir) == false) SystemDirectory = systemDir; m_shareName = shareName; m_cloudFileClient = m_cloudStorageAccount.CreateCloudFileClient(); m_cloudShare = m_cloudFileClient.GetShareReference(shareName); if (m_cloudShare.Exists()) { m_rootDir = m_cloudShare.GetRootDirectoryReference(); m_databaseDir = m_rootDir.GetDirectoryReference(systemDir); m_databaseDir.CreateIfNotExists(); } }
public void CloudFileClientObjects() { CloudFileClient fileClient = GenerateCloudFileClient(); CloudFileShare share = fileClient.GetShareReference("share"); Assert.AreEqual(fileClient, share.ServiceClient); CloudFileDirectory rootDirectory = share.GetRootDirectoryReference(); Assert.AreEqual(fileClient, rootDirectory.ServiceClient); CloudFileDirectory directory = rootDirectory.GetDirectoryReference("directory"); Assert.AreEqual(fileClient, directory.ServiceClient); CloudFile file = directory.GetFileReference("file"); Assert.AreEqual(fileClient, file.ServiceClient); CloudFileShare share2 = GetRandomShareReference(); Assert.AreNotEqual(fileClient, share2.ServiceClient); }
private async Task <bool> CloudFileDirectorySetupAsync(CloudFileShare share) { try { CloudFileDirectory rootDirectory = share.GetRootDirectoryReference(); for (int i = 1; i < 3; i++) { CloudFileDirectory topDirectory = rootDirectory.GetDirectoryReference("TopDir" + i); await topDirectory.CreateAsync(); for (int j = 1; j < 3; j++) { CloudFileDirectory midDirectory = topDirectory.GetDirectoryReference("MidDir" + j); await midDirectory.CreateAsync(); for (int k = 1; k < 3; k++) { CloudFileDirectory endDirectory = midDirectory.GetDirectoryReference("EndDir" + k); await endDirectory.CreateAsync(); CloudFile file1 = endDirectory.GetFileReference("EndFile" + k); await file1.CreateAsync(0); } } CloudFile file2 = topDirectory.GetFileReference("File" + i); await file2.CreateAsync(0); } return(true); } catch (Exception e) { throw e; } }
public void CloudFileDirectoryDelimitersInARow() { CloudFileClient client = GenerateCloudFileClient(); string name = GetRandomShareName(); CloudFileShare share = client.GetShareReference(name); CloudFile file = share.GetRootDirectoryReference().GetFileReference(NavigationHelper.Slash + NavigationHelper.Slash + NavigationHelper.Slash + "File1"); ////Traverse from leaf to root CloudFileDirectory directory1 = file.Parent; Assert.AreEqual(directory1.Name, NavigationHelper.Slash + NavigationHelper.Slash + NavigationHelper.Slash); CloudFileDirectory directory2 = directory1.Parent; Assert.AreEqual(directory2.Name, NavigationHelper.Slash + NavigationHelper.Slash); CloudFileDirectory directory3 = directory2.Parent; Assert.AreEqual(directory3.Name, NavigationHelper.Slash); ////Traverse from root to leaf CloudFileDirectory directory4 = share.GetRootDirectoryReference().GetDirectoryReference(NavigationHelper.Slash); CloudFileDirectory directory5 = directory4.GetDirectoryReference(NavigationHelper.Slash); Assert.AreEqual(directory5.Name, NavigationHelper.Slash + NavigationHelper.Slash); CloudFileDirectory directory6 = directory5.GetDirectoryReference(NavigationHelper.Slash); Assert.AreEqual(directory6.Name, NavigationHelper.Slash + NavigationHelper.Slash + NavigationHelper.Slash); CloudFile file2 = directory6.GetFileReference("File1"); Assert.AreEqual(file2.Name, NavigationHelper.Slash + NavigationHelper.Slash + NavigationHelper.Slash + "File1"); Assert.AreEqual(file2.Uri, file.Uri); }
private bool CloudFileDirectorySetup(CloudFileShare share) { try { CloudFileDirectory rootDirectory = share.GetRootDirectoryReference(); for (int i = 1; i < 3; i++) { CloudFileDirectory topDirectory = rootDirectory.GetDirectoryReference("TopDir" + i); topDirectory.Create(); for (int j = 1; j < 3; j++) { CloudFileDirectory midDirectory = topDirectory.GetDirectoryReference("MidDir" + j); midDirectory.Create(); for (int k = 1; k < 3; k++) { CloudFileDirectory endDirectory = midDirectory.GetDirectoryReference("EndDir" + k); endDirectory.Create(); CloudFile file1 = endDirectory.GetFileReference("EndFile" + k); file1.Create(0); } } CloudFile file2 = topDirectory.GetFileReference("File" + i); file2.Create(0); } return(true); } catch (StorageException e) { throw e; } }
private void Initialise(LoggingEvent loggingEvent) { if (_storageAccount == null || AzureStorageConnectionString != _thisConnectionString) { _storageAccount = CloudStorageAccount.Parse(AzureStorageConnectionString); _thisConnectionString = AzureStorageConnectionString; _client = null; _share = null; _folder = null; _file = null; } if (_client == null) { _client = _storageAccount.CreateCloudFileClient(); _share = null; _folder = null; _file = null; } if (_share == null || _share.Name != ShareName) { _share = _client.GetShareReference(ShareName); _share.CreateIfNotExists(); _folder = null; _file = null; } if (_folder == null || Path != _thisFolder) { var pathElements = Path.Split(new[] {'\\', '/'}, StringSplitOptions.RemoveEmptyEntries); _folder = _share.GetRootDirectoryReference(); foreach (var element in pathElements) { _folder = _folder.GetDirectoryReference(element); _folder.CreateIfNotExists(); } _thisFolder = Path; _file = null; } var filename = Regex.Replace(File, @"\{(.+?)\}", _ => loggingEvent.TimeStamp.ToString(_.Result("$1"))); if (_file == null || filename != _thisFile) { _file = _folder.GetFileReference(filename); if (!_file.Exists()) _file.Create(0); _thisFile = filename; } }
/// <inheritdoc /> public override bool CreateDirectory(string path) { var share = m_rootDir.GetDirectoryReference(path); if (!share.Exists()) { m_rootDir = m_cloudShare.GetRootDirectoryReference(); m_databaseDir = m_rootDir.GetDirectoryReference(path); m_databaseDir.CreateIfNotExists(); return true; } return false; }