コード例 #1
0
ファイル: FSExplorer.cs プロジェクト: 15831944/Apq
        public void LoadDrives()
        {
            Apq.Windows.Delegates.Action_UI <FSExplorer>(this, this, delegate(FSExplorer ctrl)
            {
                // 取消监视
                foreach (Apq.IO.FsWatcher fsw in lstFsws)
                {
                    fsw.Created -= new FileSystemEventHandler(fsw_Created);
                    fsw.Renamed -= new RenamedEventHandler(fsw_Renamed);
                    fsw.Deleted -= new FileSystemEventHandler(fsw_Deleted);
                    fsw.Changed -= new FileSystemEventHandler(fsw_Changed);
                }
                lstFsws.Clear();

                // 为TreeListView添加根结点
                Items.Clear();
                //Items.SortOrder = SortOrder.None;

                DriveInfo[] fsDrives = DriveInfo.GetDrives();

                foreach (DriveInfo fsDrive in fsDrives)
                {
                    string strExt = fsDrive.Name;

                    TreeListViewItem ndRoot = new TreeListViewItem(fsDrive.Name.Substring(0, 2));
                    Items.Add(ndRoot);
                    Apq.DllImports.Shell32.SHFILEINFO shFileInfo = new DllImports.Shell32.SHFILEINFO();
                    Icon SmallIcon    = Apq.Windows.Forms.IconChache.GetFileSystemIcon(strExt, ref shFileInfo);
                    ndRoot.ImageIndex = _imgList.Images.IndexOfKey(shFileInfo.szTypeName);
                    if (fsDrive.IsReady)
                    {
                        ndRoot.SubItems.Add(fsDrive.TotalSize.ToString("n0"));
                    }
                    else
                    {
                        ndRoot.SubItems.Add("0");
                    }
                    ndRoot.SubItems.Add(shFileInfo.szTypeName);
                    ndRoot.SubItems.Add(fsDrive.RootDirectory.CreationTime.ToString("yyyy-MM-dd HH:mm:ss"));
                    ndRoot.SubItems.Add(fsDrive.RootDirectory.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss"));

                    ndRoot.SubItems.Add(fsDrive.Name);
                    ndRoot.SubItems.Add(fsDrive.IsReady ? "0" : "-1");
                    ndRoot.SubItems.Add("1");                    //类型{1:Drive,2:Folder,3:File}

                    // 排序
                    //try { Items.Sort(false); }
                    //catch { }

                    // 添加监视器
                    if (fsDrive.IsReady)
                    {
                        Apq.IO.FsWatcher fsw               = new Apq.IO.FsWatcher();
                        fsw.FileSystemWatcher.Path         = fsDrive.RootDirectory.FullName;
                        fsw.FileSystemWatcher.NotifyFilter = NotifyFilters.CreationTime
                                                             | NotifyFilters.DirectoryName
                                                             | NotifyFilters.FileName
                                                             | NotifyFilters.LastWrite
                                                             | NotifyFilters.Size;
                        fsw.FileSystemWatcher.IncludeSubdirectories = true;
                        fsw.Created += new FileSystemEventHandler(fsw_Created);
                        fsw.Renamed += new RenamedEventHandler(fsw_Renamed);
                        fsw.Deleted += new FileSystemEventHandler(fsw_Deleted);
                        fsw.Changed += new FileSystemEventHandler(fsw_Changed);
                        lstFsws.Add(fsw);
                        fsw.Start();
                    }
                }
            });
        }
コード例 #2
0
ファイル: FSExplorer.cs プロジェクト: lujinlong/Apq
		public void LoadDrives()
		{
			Apq.Windows.Delegates.Action_UI<FSExplorer>(this, this, delegate(FSExplorer ctrl)
			{
				// 取消监视
				foreach (Apq.IO.FsWatcher fsw in lstFsws)
				{
					fsw.Created -= new FileSystemEventHandler(fsw_Created);
					fsw.Renamed -= new RenamedEventHandler(fsw_Renamed);
					fsw.Deleted -= new FileSystemEventHandler(fsw_Deleted);
					fsw.Changed -= new FileSystemEventHandler(fsw_Changed);
				}
				lstFsws.Clear();

				// 为TreeListView添加根结点
				Items.Clear();
				//Items.SortOrder = SortOrder.None;

				DriveInfo[] fsDrives = DriveInfo.GetDrives();

				foreach (DriveInfo fsDrive in fsDrives)
				{
					string strExt = fsDrive.Name;

					TreeListViewItem ndRoot = new TreeListViewItem(fsDrive.Name.Substring(0, 2));
					Items.Add(ndRoot);
					Apq.DllImports.Shell32.SHFILEINFO shFileInfo = new DllImports.Shell32.SHFILEINFO();
					Icon SmallIcon = Apq.Windows.Forms.IconChache.GetFileSystemIcon(strExt, ref shFileInfo);
					ndRoot.ImageIndex = _imgList.Images.IndexOfKey(shFileInfo.szTypeName);
					if (fsDrive.IsReady)
					{
						ndRoot.SubItems.Add(fsDrive.TotalSize.ToString("n0"));
					}
					else
					{
						ndRoot.SubItems.Add("0");
					}
					ndRoot.SubItems.Add(shFileInfo.szTypeName);
					ndRoot.SubItems.Add(fsDrive.RootDirectory.CreationTime.ToString("yyyy-MM-dd HH:mm:ss"));
					ndRoot.SubItems.Add(fsDrive.RootDirectory.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss"));

					ndRoot.SubItems.Add(fsDrive.Name);
					ndRoot.SubItems.Add(fsDrive.IsReady ? "0" : "-1");
					ndRoot.SubItems.Add("1");//类型{1:Drive,2:Folder,3:File}

					// 排序
					//try { Items.Sort(false); }
					//catch { }

					// 添加监视器
					if (fsDrive.IsReady)
					{
						Apq.IO.FsWatcher fsw = new Apq.IO.FsWatcher();
						fsw.FileSystemWatcher.Path = fsDrive.RootDirectory.FullName;
						fsw.FileSystemWatcher.NotifyFilter = NotifyFilters.CreationTime
							| NotifyFilters.DirectoryName
							| NotifyFilters.FileName
							| NotifyFilters.LastWrite
							| NotifyFilters.Size;
						fsw.FileSystemWatcher.IncludeSubdirectories = true;
						fsw.Created += new FileSystemEventHandler(fsw_Created);
						fsw.Renamed += new RenamedEventHandler(fsw_Renamed);
						fsw.Deleted += new FileSystemEventHandler(fsw_Deleted);
						fsw.Changed += new FileSystemEventHandler(fsw_Changed);
						lstFsws.Add(fsw);
						fsw.Start();
					}
				}
			});
		}