Beispiel #1
0
        public void LoadListView(ListView listView, ImageList imageList, string remotePath)
        {
            if (upYun == null)
            {
                return;
            }
            Cursor.Current = Cursors.WaitCursor;
            List <FolderItem> itemsArray = new List <FolderItem>();

            try { itemsArray = upYun.readDir(remotePath).Cast <FolderItem>().ToList(); }
            catch { } // UpYun SDK BUG: 调用readDir方法时,如果该目录下没有任何文件或目录,会有数组越界的问题
            try
            {
                ListView.ListViewItemCollection listViewItems = listView.Items;
                int    imageIndex  = 0;
                string programPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
                ImageList.ImageCollection imageItems = imageList.Images;
                listViewItems.Clear(); imageItems.Clear();
                if (!remotePath.Equals("/"))
                {
                    string[] itemInfo = new string[4];
                    itemInfo[0] = "上级目录";
                    itemInfo[3] = "ParentDir";
                    ListViewItem parentDirItem = new ListViewItem(itemInfo, 0);
                    listViewItems.Add(parentDirItem);
                    imageItems.Add(StaticFileUpload.Business.Properties.Resources.up_16x16);
                    imageIndex++;
                }
                imageItems.Add(IconUtil.GetDirectoryIcon(programPath));
                imageIndex++;
                foreach (FolderItem item in itemsArray)
                {
                    ListViewItem listViewItem = null;
                    string[]     itemInfo     = new string[4];
                    itemInfo[0] = item.filename;
                    itemInfo[1] = SFUCommon.GetCommonSize(item.size);
                    itemInfo[2] = SFUCommon.GetCommonTime(item.number).ToString();
                    if (item.filetype.Equals("N"))
                    {
                        itemInfo[3]  = "N";
                        listViewItem = new ListViewItem(itemInfo, imageIndex);
                        imageItems.Add(IconUtil.GetFileIcon(item.filename, false));
                        imageIndex++;
                    }
                    else
                    {
                        itemInfo[3]  = "F";
                        listViewItem = new ListViewItem(itemInfo, remotePath.Equals("/") ? 0 : 1);
                    }
                    listViewItems.Add(listViewItem);
                }
            }
            catch (Exception ex)
            {
                SFULogger.DEFAULT.Error(ex);
                throw;
            }
            Cursor.Current = Cursors.Default;
        }
Beispiel #2
0
        public void LoadListView(ListView listView, ImageList imageList, string localPath)
        {
            Cursor.Current = Cursors.WaitCursor;
            string[] filesArray, diresArray; int imageIndex = 1;
            ListView.ListViewItemCollection listViewItems  = listView.Items;
            ImageList.ImageCollection       imageListItems = imageList.Images;
            try
            {
                diresArray = Directory.GetDirectories(localPath);
                filesArray = Directory.GetFiles(localPath);
            }
            catch (Exception ex)
            {
                SFULogger.DEFAULT.Error("该目录不存在!", ex);
                MessageBox.Show("该目录不存在!");
                return;
            }
            // 清空 ListView & ImageList 控件条目集合
            listViewItems.Clear(); imageListItems.Clear();
            listViewItems.Add("上级目录", 0);
            imageListItems.Add(StaticFileUpload.Business.Properties.Resources.up_16x16);

            // 遍历 localPath 目录下的子文件夹
            for (int i = 0; i < diresArray.Length; i++)
            {
                string[]      dirInfoArray  = new string[3];
                DirectoryInfo directoryInfo = new DirectoryInfo(diresArray[i]);
                if ((directoryInfo.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden)
                {
                    dirInfoArray[0] = directoryInfo.Name;
                    dirInfoArray[1] = "      ";
                    dirInfoArray[2] = directoryInfo.LastWriteTime.ToString();
                    ListViewItem listViewItem = new ListViewItem(dirInfoArray, imageIndex);
                    listViewItems.Add(listViewItem);
                    imageListItems.Add(dirInfoArray[0], IconUtil.GetDirectoryIcon(directoryInfo.FullName));
                    imageIndex++;
                }
            }
            // 遍历 localPath 目录下的子文件
            for (int i = 0; i < filesArray.Length; i++)
            {
                string[] fileInfoArray = new string[3];
                FileInfo fileInfo      = new FileInfo(filesArray[i]);
                if ((fileInfo.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden)
                {
                    fileInfoArray[0] = fileInfo.Name;
                    fileInfoArray[1] = SFUCommon.GetCommonSize(fileInfo.Length);
                    fileInfoArray[2] = fileInfo.LastWriteTime.ToString();
                    ListViewItem listViewItem = new ListViewItem(fileInfoArray, imageIndex);
                    listViewItems.Add(listViewItem);
                    imageListItems.Add(fileInfo.Name, IconUtil.GetFileIcon(fileInfo.FullName, false));
                    imageIndex++;
                }
            }
            Cursor.Current = Cursors.Default;
        }