public void no() { Folder networkConnectionsFolder = GetNetworkConnectionsFolder(); if (networkConnectionsFolder == null) { Console.WriteLine("Network connections folder not found."); return; } FolderItem2 networkConnection = GetNetworkConnection(networkConnectionsFolder, string.Empty); if (networkConnection == null) { Console.WriteLine("Network connection not found."); return; } FolderItemVerb verb; try { IsNetworkConnectionEnabled(networkConnection, out verb); verb.DoIt(); Thread.Sleep(1000); IsNetworkConnectionEnabled(networkConnection, out verb); verb.DoIt(); } catch (ArgumentException ex) { Console.WriteLine(ex.Message); } }
public static long portable_file_size(FolderItem2 fi) { try { var sz = (long)fi.ExtendedProperty("size"); return(sz); } catch { } try { // this will return something like, "3.34 KB" or so var size_str = (fi.Parent as Folder).GetDetailsOf(fi, 2).ToLower(); var multiply_by = 1; if (size_str.EndsWith("kb")) { multiply_by = 1024; size_str = size_str.Substring(0, size_str.Length - 2); } else if (size_str.EndsWith("mb")) { multiply_by = 1024 * 1024; size_str = size_str.Substring(0, size_str.Length - 2); } size_str = size_str.Trim(); double size_double = 0; double.TryParse(size_str, out size_double); return((long)(size_double * multiply_by)); } catch { return(-1); } }
public FileProperties(Folder folder, FolderItem2 item, bool UseRelativePaths = false) { this.folder = folder; this.item = item; this.UseRelativePaths = UseRelativePaths; if (!FilePropertiesMetadata.Initialized) { FilePropertiesMetadata.Initialize(folder); } }
/// <summary> /// Gets whether or not the network connection is enabled and the command to enable/disable it. /// </summary> /// <param name="networkConnection">The network connection to check.</param> /// <param name="enableDisableVerb">On return, receives the verb used to enable or disable the connection.</param> /// <returns>True if the connection is enabled, false if it is disabled.</returns> static bool IsNetworkConnectionEnabled(FolderItem2 networkConnection, out FolderItemVerb enableDisableVerb) { var verbs = networkConnection.Verbs(); foreach (FolderItemVerb verb in verbs) { if (verb.Name == "启用(&A)") { enableDisableVerb = verb; return(false); } if (verb.Name != "停用(&B)") { continue; } enableDisableVerb = verb; return(true); } throw new ArgumentException("No enable or disable verb found."); }
public override void RequestSubDirs(TreeViewFolderBrowserHelper helper, TreeNodePath parent, TreeViewCancelEventArgs e) { if (!parent.IsSpecialFolder) { return; } // FolderItem2 folderItem = ((FolderItem2)parent.Tag); // if (_shell.Shell.NameSpace(ShellSpecialFolderConstants.ssfDRIVES).Title == folderItem.Name) { FillMyComputer(folderItem, parent.Nodes, helper); } else { List <TreeNodePath> nodes = new List <TreeNodePath>(); foreach (FolderItem2 fi in ((Folder2)folderItem.GetFolder).Items()) { if (!_showAllShellObjects && !fi.IsFileSystem || !fi.IsFolder) { continue; } // TreeNodePath node = CreateTreeNode(helper, fi.Name, fi.Path, IsFolderWithChilds(fi), false, true); node.Tag = fi; nodes.Add(node); } // Sort the Directories, as Samba might return unsorted TreeNodePath[] nodesArray = nodes.ToArray(); Array.Sort(nodesArray, new Comparison <TreeNodePath>( delegate(TreeNodePath p1, TreeNodePath p2) { return(string.Compare(p1.Text, p2.Text)); })); parent.Nodes.AddRange(nodesArray); } }
// note: this can only happen synchronously - otherwise, we'd end up deleting something from HDD before it was fully moved from the HDD public static void delete_sync_portable_file(FolderItem2 fi) { Debug.Assert(!fi.IsFolder); // https://msdn.microsoft.com/en-us/library/windows/desktop/bb787874(v=vs.85).aspx var move_options = 4 | 16 | 512 | 1024; try { var temp = win_util.temporary_root_dir(); var temp_folder = win_util.get_shell32_folder(temp); var file_name = fi.Name; var size = portable_util.portable_file_size(fi); temp_folder.MoveHere(fi, move_options); var name = temp + "\\" + file_name; wait_for_win_copy_complete(size, temp + "\\" + file_name); File.Delete(name); } catch { // backup - this will prompt a confirmation dialog // googled it quite a bit - there's no way to disable it fi.InvokeVerb("delete"); } }
/// <summary> /// Read Sub Folders of the selected Parent Node /// </summary> /// <param name="helper"></param> /// <param name="parent"></param> public virtual void RequestSubDirs(TreeViewHelper helper, TreeItem parent) { log.Trace(">>>"); helper.TreeView.Cursor = Cursors.Wait; FolderItem2 folderItem = ((FolderItem2)parent.Item); log.Trace($"Requesting Subfolders of {folderItem.Name}"); if (_shell.Shell.NameSpace(ShellSpecialFolderConstants.ssfDRIVES).Title == folderItem.Name) { FillMyComputer(folderItem, parent.Nodes, helper); } else { var nodes = new List <TreeItem>(); foreach (FolderItem2 fi in ((Folder2)folderItem.GetFolder).Items()) { if (!_showAllShellObjects && !fi.IsFileSystem || !fi.IsFolder) { continue; } var node = CreateTreeNode(helper, fi.Name, fi.Path, false, fi); nodes.Add(node); } // Sort the Directories, as Samba might return unsorted var nodesArray = nodes.ToArray(); Array.Sort(nodesArray, (p1, p2) => string.CompareOrdinal(p1.Name, p2.Name)); parent.Nodes.AddRange(nodesArray); helper.TreeView.Cursor = Cursors.Arrow; } log.Trace("<<<"); }
public portable_file(portable_drive drive, FolderItem2 fi) { drive_ = drive; fi_ = fi; Debug.Assert(!fi.IsFolder); }
public static DateTime GetDisplacedDate(FolderItem2 item) { return((DateTime)item.ExtendedProperty(PID_DISPLACED_DATE)); }
public void PrintOne(int index) { int size = _objFolder.Items().Count; if(index >= size) return; var tempItem2 = new FolderItem2[size]; //Shell32.FolderItem2 tempItem = _objFolder.ParseName() //tempItem2 = _objFolder.Items(); int j = 0; foreach (Shell32.FolderItem2 tempItem in _objFolder.Items()) { tempItem2[j] = tempItem; j++; } //foreach (Shell32.FolderItem2 item in _objFolder.Items()) { for (int i = 0; i < _arrHeaders.Count; i++) { Console.WriteLine("{0}\t{1}: {2}", index, _arrHeaders[i], _objFolder.GetDetailsOf(tempItem2[index],i)); } } }
public PortableFile(PortableDrive drive, FolderItem2 fi) { drive_ = drive; fi_ = fi; //Debug.Assert(!fi.IsFolder); }