void updateFileList(object path) { try { Path_Lab.Text = "当前路径:" + path.ToString().Replace("apps", "我的应用数据"); var jobj = JObject.Parse(WebTool.GetHtml($"https://pcs.baidu.com/rest/2.0/pcs/file?method=list&access_token={Program.config.Access_Token}&path=" + Uri.EscapeDataString($"{path.ToString()}"))); FilelistView.BeginUpdate(); FilelistView.Items.Clear(); Fileinfo.Clear(); foreach (JObject job in jobj["list"]) { DiskFileInfo fileinfo = JsonConvert.DeserializeObject <DiskFileInfo>(job.ToString()); FilelistView.Items.Add(fileinfo.getName()); this.Fileinfo.Add(fileinfo.getName(), fileinfo); if (fileinfo.isdir == 1) { setEndItemImageKey("Dir.png"); } else { setEndItemImageKey(getIconImage(fileinfo.getSuffix())); } } FilelistView.EndUpdate(); } catch (Exception ex) { MessageBox.Show("更新文件列表时遇到意外的错误: " + ex.ToString()); } Info_Lab.Text = "等待中..."; }
private void UpdateListView(IReadOnlyCollection <NlFile> list) { if (list == null) { tsbLock.Enabled = false; toolStripFileCountLabel.Text = FilelistView.Items.Count.ToString(); return; } if (list.Count <= 0) { tsbLock.Enabled = false; FilelistView.Items.Clear(); toolStripFileCountLabel.Text = FilelistView.Items.Count.ToString(); return; } FilelistView.BeginUpdate(); try { FilelistView.Items.Clear(); //TODO: add image icon to file list foreach (var key in list) { var item = new ListViewItem(Path.GetFileName(key.FileName)); var type = " B"; double original = key.OriginalSize; double compressed = key.CompressedSize; if (key.OriginalSize > 1024) { original = key.OriginalSize / 1024.0; compressed = key.CompressedSize / 1024.0; type = "KiB"; } if (key.OriginalSize > 1024 * 1024) { original = original / 1024; compressed = compressed / 1024; type = "MiB"; } if (key.OriginalSize > 1024 * 1024 * 1024) { original = original / 1024; compressed = compressed / 1024; type = "GiB"; } item.SubItems.Add(string.Format("{0:N2} {1}", original, type)); item.SubItems.Add(string.Format("{0:N2} {1}", compressed, type)); item.SubItems.Add(key.FilePath != null ? key.FilePath + "\\" : "\\"); FilelistView.Items.Add(item); tsbLock.Enabled = FilelistView.Items.Count > 0; } } finally { FilelistView.EndUpdate(); toolStripFileCountLabel.Text = FilelistView.Items.Count.ToString(); } }