public void Test_ListFile_Without_Stat() { var localPath = this.Fixture.CreateFile("foo"); var localFileName = Path.GetFileName(localPath); var remotePath = "/" + localFileName; this.Client.MakeFile(localPath, remotePath); var listResults = this.Client.ListFile("/", 100, 0, false); ListFileResult foundResult = null; foreach (var file in listResults) { if (file.Name == localFileName) { foundResult = file; } } Assert.AreEqual(localFileName, foundResult.Name); Assert.AreEqual(0, foundResult.Ctime); Assert.AreEqual(0, foundResult.Mtime); Assert.AreEqual(0, foundResult.Gid); Assert.AreEqual(0, foundResult.Uid); Assert.IsNull(foundResult.Checksum); Assert.AreEqual(0, foundResult.Size); Assert.IsNull(foundResult.ContentType); this.Client.DeleteFile(remotePath); }
public void Test_ListFile_Success() { var localPath = this.Fixture.CreateFile("foo"); var localFileName = Path.GetFileName(localPath);; var remotePath = "/" + localFileName; this.Client.MakeFile(localPath, remotePath); var listResults = this.Client.ListFile("/", 100, 0, true); ListFileResult foundResult = null; foreach (var file in listResults) { if (file.Name == localFileName) { foundResult = file; } } Assert.AreEqual(localFileName, foundResult.Name); Assert.IsTrue(foundResult.Ctime > 0); Assert.IsTrue(foundResult.Mtime > 0); Assert.IsTrue(foundResult.Gid > 0); Assert.IsTrue(foundResult.Uid > 0); Assert.AreEqual(3, foundResult.Size); Assert.IsNotNull(foundResult.Checksum); this.Client.DeleteFile(remotePath); }
private void DownloadFolder(object path) { Client client = new Client(); ListFileResult flst = client.GetFileList(path as string); foreach (Item item in flst.list) { if (stopFlag) { return; } if (item.isdir == 0) { if (File.Exists(Program.Config.DefaultDownloadPath + item.path.Replace("/", "\\"))) { continue; } retry: DownloadResult dr = client.GetDownload(item.path); if (dr.urls == null) { goto retry; } if (dr.urls.Length == 1 && dr.urls[0].url.Contains("wenxintishi")) { continue; } List <string> urls = new List <string>(); foreach (Url url in dr.urls) { urls.Add(url.url); } string p = Program.Config.DefaultDownloadPath + item.path.Remove(item.path.LastIndexOf('/')).Replace("/", "\\"); if (!Directory.Exists(p)) { Directory.CreateDirectory(p); } lblDownloading.Text = item.path; new SingleDownloadForm(urls, p, true).ShowDialog(); } else { DownloadFolder(item.path); } } }
private void RefreshPath(string path) { string rpath = (path == "" ? "/" : path); ListFileResult flst = client.GetFileList(rpath); if (flst.list == null) { return; } if (flst.list.Length == (rpath == "/" ? listView1.Items.Count : listView1.Items.Count - 1)) { foreach (Item item in flst.list) { if (!listView1.Items.ContainsKey(item.path)) { metroProgressSpinner1.Visible = false; return; } } } listView1.BeginUpdate(); listView1.Items.Clear(); if (rpath != "/") { listView1.Items.Add(new ListViewItem("..", "FolderType")); } foreach (Item item in flst.list) { ListViewItem lvItem = new ListViewItem(item.server_filename); if (item.isdir == 1) { if (item.server_filename == "apps") { lvItem.ImageKey = "Apps"; } else { lvItem.ImageKey = "FolderType"; } lvItem.SubItems.AddRange(new string[] { "", TimeStamp2DateTime(item.server_ctime.ToString()).ToString() }); } else { if (item.server_filename.Contains(".")) { switch (item.server_filename.Substring(item.server_filename.LastIndexOf(".")).ToLower()) { #region TypeSwitch case ".apk": lvItem.ImageKey = "ApkType"; break; case ".cad": lvItem.ImageKey = "CadType"; break; case ".doc": case ".docx": lvItem.ImageKey = "DocType"; break; case ".exe": lvItem.ImageKey = "ExeType"; break; case ".png": case ".jpg": case ".jpeg": case ".gif": case ".bmp": case ".tiff": lvItem.ImageKey = "ImgType"; break; case ".ipa": lvItem.ImageKey = "IpaType"; break; case ".mp3": case ".flac": case ".ogg": case ".wav": case ".wma": case ".aac": case ".ape": lvItem.ImageKey = "MusicType"; break; case ".ppt": case ".pptx": lvItem.ImageKey = "PptType"; break; case ".rar": case ".zip": case ".7z": case ".tar": case ".gz": lvItem.ImageKey = "RarType"; break; case ".torrent": lvItem.ImageKey = "TorrentType"; break; case ".txt": lvItem.ImageKey = "TxtType"; break; case ".mp4": case ".avi": case ".mkv": case ".rm": case ".rmvb": case ".flv": case ".wmv": case ".3gp": case ".mov": lvItem.ImageKey = "VideoType"; break; case ".vsd": lvItem.ImageKey = "VsdType"; break; case ".xls": case ".xlsx": case ".csv": lvItem.ImageKey = "XlsType"; break; default: lvItem.ImageKey = "OtherType"; break; #endregion } } else { lvItem.ImageKey = "OtherType"; } lvItem.SubItems.AddRange(new string[] { GetSizeString(item.size), TimeStamp2DateTime(item.server_ctime.ToString()).ToString() }); } listView1.Items.Add(lvItem); } listView1.EndUpdate(); textBox1.Text = rpath; listView1.Items[0].Selected = true; listView1.SelectedItems.Clear(); metroProgressSpinner1.Visible = false; }