コード例 #1
0
        private async Task HandleFileDownloadRequest(FileDownloadRequestMessage msg)
        {
            var    filepath = $"{UserPath}/{msg.filename}";
            string data     = await IOController.Instance.Read(filepath);

            var resp = new FileDownloadResponseMessage {
                success = data != null, data = data
            };

            Console.WriteLine($"file length: {data.Length}");
            await SendMessage(resp);
        }
コード例 #2
0
        public async Task <IOFile> RequestFileDownload(LockerObject fileInfo, string password = "")
        {
            IOFile res = null;
            var    msg = new FileDownloadRequestMessage {
                filename = fileInfo.name
            };

            await SendMessage(msg);

            var resp = await WaitForRequestResponse <FileDownloadResponseMessage>(60000,
                                                                                  MessageType.FileDownloadResponse);

            if (resp != null && resp.success)
            {
                var fileJson = fileInfo.encrypted? Encryption.Decrypt(resp.data, password): resp.data;
                res = JsonConvert.DeserializeObject <IOFile>(fileJson);
            }
            return(res);
        }