public async Task <string[]> ListFiles(string path) { ListFilesModel model = new ListFilesModel(path); byte[] message = GetMessage(model); string jstring = JsonConvert.SerializeObject(model); MethodRequest request = new MethodRequest("listFiles", Encoding.UTF8.GetBytes(jstring)); MethodResponse response = await client.InvokeMethodAsync(deviceId, moduleId, request); if (response.Status != 200) { Console.WriteLine("DirectMethods Client listFiles failed"); throw new Exception("DirectMethods client failed on listFiles"); } else { string jsonResult = response.ResultAsJson; if (string.IsNullOrEmpty(jsonResult)) { return(null); } else { return(JsonConvert.DeserializeObject <string[]>(jsonResult)); } } }
private async Task <MethodResponse> ListFilesHandler(MethodRequest request, object context) { string jsonString = request.DataAsJson; ListFilesModel model = JsonConvert.DeserializeObject <ListFilesModel>(jsonString); if (Directory.Exists(model.Path)) { DirectoryInfo info = new DirectoryInfo(model.Path); FileInfo[] files = info.GetFiles(); List <string> fileList = new List <string>(); foreach (FileInfo file in files) { fileList.Add(file.Name); } string jString = JsonConvert.SerializeObject(fileList.ToArray()); return(new MethodResponse(Encoding.UTF8.GetBytes(jString), 200)); } else { return(new MethodResponse(404)); } }