public async Task CreateTest() { var path = $"/{Guid.NewGuid():N}"; if (await _client.ExistsAsync(path)) { await _client.DeleteAsync(path); } await _client.CreateEphemeralAsync(path, Encoding.UTF8.GetBytes("abc")); var data = (await _client.GetDataAsync(path)).ToArray(); await _client.DeleteAsync(path); }
/// <summary> /// 递归删除该节点下的所有子节点和该节点本身。 /// </summary> /// <param name="client">ZooKeeper客户端。</param> /// <param name="path">节点路径。</param> /// <returns>如果成功则返回true,false。</returns> public static async Task <bool> DeleteRecursiveAsync(this IZookeeperClient client, string path) { IEnumerable <string> children; try { children = await client.GetChildrenAsync(path); } catch (KeeperException.NoNodeException) { return(true); } foreach (var subPath in children) { if (!await client.DeleteRecursiveAsync(path + "/" + subPath)) { return(false); } } await client.DeleteAsync(path); return(true); }