Exemple #1
0
        /// <summary>
        /// 上传一个文件,返回节点描述符。
        /// </summary>
        /// <param name="sPath"></param>
        /// <returns></returns>
        public static FileTreeNode UploadFile(string sPath, string strID, string strInfo, ContentKind cKind, string strApp)
        {
            TFile file = new TFile();

            file.FileContent = File.ReadAllBytes(sPath);
            FileStream fs = File.OpenRead(sPath);

            file.FileId    = strID;
            file.FileInfo  = strInfo;
            file.FileKind  = (TContentKind)cKind;
            file.FileSize  = fs.Length;
            file.FromApp   = strApp;
            file.FileOwner = GetValidator().VssID;
            ClientAdapt.Open();
            TVssService.Client client   = ClientAdapt.GetClient();
            string             strNewID = client.Put(GetValidator(), file);

            ClientAdapt.Close();

            FileTreeNode fileTreeNode = new FileTreeNode();

            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
            fileTreeNode.CreateDate = (uint)(DateTime.Now - startTime).TotalSeconds;
            fileTreeNode.FileID     = strNewID;
            fileTreeNode.FileInfo   = strInfo;
            fileTreeNode.FileKind   = cKind;
            fileTreeNode.FileSize   = (ulong)fs.Length;
            fileTreeNode.FromApp    = strApp;
            fileTreeNode.SubNodes   = null;
            fileTreeNode.FileOwner  = GetValidator().VssID;
            fileTreeNode.NodeName   = fs.Name.Substring(fs.Name.LastIndexOf("\\") + 1);

            return(fileTreeNode);
        }
Exemple #2
0
 /// <summary>
 /// 初始化三个VssDisk系统文件夹
 /// </summary>
 /// <param name="myShareNode"></param>
 /// <param name="myFocusNode"></param>
 /// <param name="myReceiveNode"></param>
 public static void InitFolder(FileTreeNode myFreeNode, FileTreeNode myShareNode, FileTreeNode myFocusNode, FileTreeNode myReceiveNode)
 {
     FreeFolder    = myFreeNode;
     PublishFolder = myShareNode;
     FocusFolder   = myFocusNode;
     ReceiveFolder = myReceiveNode;
 }
Exemple #3
0
        public List <FileTreeNode> GetChildren(string filePath)
        {
            List <FileTreeNode> children = new List <FileTreeNode>();

            foreach (var file in EnumerateFilesInFolder(Enumerator, connection, filePath))
            {
                bool         isFile   = !string.IsNullOrEmpty(file.fileName);
                FileTreeNode treeNode = new FileTreeNode();
                if (isFile)
                {
                    treeNode.Name     = file.fileName;
                    treeNode.FullPath = file.fullPath;
                }
                else
                {
                    treeNode.Name     = file.folderName;
                    treeNode.FullPath = file.path;
                }
                treeNode.IsFile = isFile;

                // if the node is a directory, or if we are browsing for files and the file name is allowed,
                // add the node to the tree
                if (!isFile || (this.FilterFile(treeNode.Name, this.fileFilters)))
                {
                    children.Add(treeNode);
                }
            }
            return(children);
        }
Exemple #4
0
        /// <summary>
        /// 修改某个节点的节点名字[文件名或目录名]
        /// </summary>
        /// <param name="fileNode"></param>
        public static void RenameNode(FileTreeNode fileNode)
        {
            if (fileNode == null)
            {
                MessageBox.Show("Please Select A file or folder In ViewList !", "Error");
                return;
            }
            //获取用户输入
            string folderName = Interaction.InputBox("Please Set A name of your selection.");

            //如果为空,则忽略
            if (folderName == "")
            {
                return;
            }
            //首先修改节点名字
            fileNode.NodeName = folderName;
            //设置ListView
            TurnCurrentNode(CurrentNode);
            //如果是文件夹,那么修改TreeView的内容项
            if (fileNode.SubNodes != null)
            {
                //在TreeView中找到当前节点
                TreeNode treeNode = FindNodeInTree(uiTreeNode.TopNode, fileNode);
                treeNode.Text = fileNode.NodeName;
            }
            BLLControl.SaveDirectoryInfo();
        }
Exemple #5
0
        /// <summary>
        /// 在当前目录下新建文件夹
        /// </summary>
        public static void AddNewFolder()
        {
            //获取用户输入
            string folderName = Interaction.InputBox("Please Set A name of new folder.");

            //如果为空,则忽略
            if (folderName == "")
            {
                return;
            }
            //创建一个新的逻辑节点
            FileTreeNode folderNode = new FileTreeNode
            {
                FileID   = "0",
                FileKind = ContentKind.Folder,
                FileInfo = "用户自定义文件夹",
                FileSize = 0,
                FromApp  = "Vss",
                NodeName = folderName,
                SubNodes = new List <FileTreeNode>()
            };

            //加入当前节点中
            AddNode(folderNode);
        }
Exemple #6
0
        public FileList()
        {
            extensions = new List<string>();
            extensions.Add(".cs");
            extensions.Add(".vb");
            extensions.Add(".resx");
            extensions.Add(".boo");

            InitializeComponent();
            InitializeMenu();

            openFileDialog.Filter = @"All known formats (*.cs;*.vb;*.resx;*.boo)|*.cs;*.vb;*.resx;*.boo|C# files (*.cs)|*.cs|VisualBasic files (*.vb)|*.vb|Boo Files (*.boo)|*.boo|Resource files (*.resx)|*.resx|All files (*.*)|*.*";

            iconList.Images.Add(".cs", Resources.cs);
            iconList.Images.Add(".vb", Resources.vb);
            iconList.Images.Add(".jsl", Resources.jsl);
            iconList.Images.Add(".boo", Resources.boo);
            iconList.Images.Add(".resx", Resources.resx);
            iconList.Images.Add("unknown", Resources.unknown);
            iconList.Images.Add("FolderOpened", Resources.FolderOpened);
            iconList.Images.Add("FolderClosed", Resources.FolderClosed);

            rootNode = new FileTreeNode();
            rootNode.Text = RootDirErrMsg;
            rootNode.ImageKey = "FolderOpened";
            rootNode.SelectedImageKey = rootNode.ImageKey;
            rootNode.Expand();

            treeView.Nodes.Add(rootNode);

            showAllFiles = false;
            needCompilation = true;
        }
Exemple #7
0
 /// <summary>
 /// 删除某个节点
 /// </summary>
 /// <param name="fileNode"></param>
 /// <param name="bAsk"></param>
 public static void DeleteNode(FileTreeNode fileNode, bool bAsk = true)
 {
     if (fileNode == null)
     {
         MessageBox.Show("Please Select A file or folder In ViewList !", "Error");
         return;
     }
     //获取用户输入
     if (bAsk)
     {
         DialogResult dr = MessageBox.Show("Are you sure to delete the selection file or folder ?", "Delete Asking", MessageBoxButtons.YesNo);
         if (dr != DialogResult.Yes)
         {
             return;
         }
     }
     //确认删除
     //首先从当前节点中删除掉这个节点
     CurrentNode.SubNodes.Remove(fileNode);
     if (fileNode.SubNodes != null)
     {
         //如果是一个文件夹,还需要去TreeView删除对应的TreeNode
         //寻找他的父节点
         TreeNode CurTreeNode = FindNodeInTree(uiTreeNode.TopNode, CurrentNode);
         TreeNode treeNode    = FindNodeInTree(uiTreeNode.TopNode, fileNode);
         //删除被删除的节点
         CurTreeNode.Nodes.Remove(treeNode);
     }
     //设置ListView
     TurnCurrentNode(CurrentNode);
     BLLControl.SaveDirectoryInfo();
 }
Exemple #8
0
        public override System.Object Exec(Computer computer, Shell shell, String[] args)
        {
            if (args.Length > 1)
            {
                FileTreeNode file     = shell.filenode.GetChild(args[1]);
                Lua          luastate = new Lua();
                if (file != null && file is File)
                {
                    luastate["shell"]    = shell;
                    luastate["computer"] = computer;
                    luastate.DoString(@"
                        function print(str)
                            shell:PushMsg(str)
                        end
                    ");

                    try
                    {
                        luastate.DoString(((File)file).text);
                    }
                    catch (NLua.Exceptions.LuaScriptException emm)
                    {
                        shell.PushMsg(emm.Message);
                    }
                }
            }
            return(null);
        }
Exemple #9
0
        public override System.Object Exec(Computer computer, Shell shell, String[] args)
        {
            if (args.Length > 2)
            {
                if (args[1] == "/")
                {
                    return(null);
                }
                FileTreeNode file = _GetNode(computer, shell, args[1]);
                Folder       to   = (Folder)_GetNode(computer, shell, args[2]);
                if ((file == null) || (to == null))
                {
                    return(null);
                }
                if (to is Folder)
                {
                    if (!to.HasChild(file.name))
                    {
                        var parent = ((Folder)file.parent);
                        parent.RemoveChild(file.name);
                        to.AddChild(file);
                    }
                    else
                    {
                        shell.PushMsg("无法移动,已有同名文件");
                    }
                }
            }

            return(null);
        }
    public void AddContentToFile(string filePath, string content)
    {
        FileTreeNode node = GetNodeFromPath(filePath, true);

        node.IsFile   = true;
        node.Content += content;
    }
    private FileTreeNode GetNodeFromPath(string path, bool createIfNotExists)
    {
        string[]     paths       = path.Split('/').Where(p => !string.IsNullOrWhiteSpace(p)).ToArray();
        FileTreeNode currentNode = root;

        for (int i = 0; i < paths.Length; i++)
        {
            string p = paths[i];
            if (!currentNode.SubTreeNode.ContainsKey(p))
            {
                if (createIfNotExists)
                {
                    currentNode.SubTreeNode.Add(p, new FileTreeNode(p));
                }
                else
                {
                    throw new InvalidOperationException("Path not found");
                }
            }

            currentNode = currentNode.SubTreeNode[p];
        }

        return(currentNode);
    }
Exemple #12
0
        public FileList()
        {
            extensions = new List <string>();
            extensions.Add(".cs");
            extensions.Add(".vb");
            extensions.Add(".resx");
            extensions.Add(".boo");

            InitializeComponent();
            InitializeMenu();

            openFileDialog.Filter = @"All known formats (*.cs;*.vb;*.resx;*.boo)|*.cs;*.vb;*.resx;*.boo|C# files (*.cs)|*.cs|VisualBasic files (*.vb)|*.vb|Boo Files (*.boo)|*.boo|Resource files (*.resx)|*.resx|All files (*.*)|*.*";

            iconList.Images.Add(".cs", Resources.cs);
            iconList.Images.Add(".vb", Resources.vb);
            iconList.Images.Add(".jsl", Resources.jsl);
            iconList.Images.Add(".boo", Resources.boo);
            iconList.Images.Add(".resx", Resources.resx);
            iconList.Images.Add("unknown", Resources.unknown);
            iconList.Images.Add("FolderOpened", Resources.FolderOpened);
            iconList.Images.Add("FolderClosed", Resources.FolderClosed);

            rootNode                  = new FileTreeNode();
            rootNode.Text             = RootDirErrMsg;
            rootNode.ImageKey         = "FolderOpened";
            rootNode.SelectedImageKey = rootNode.ImageKey;
            rootNode.Expand();

            treeView.Nodes.Add(rootNode);

            showAllFiles    = false;
            needCompilation = true;
        }
Exemple #13
0
    private void CreateTree()
    {
        root = FileTreeNode.Get().GenerateFileTree(list);
        Debug.Log("生成文件树完成");
//		ShowFileTree (root, 0);
//		Debug.Log ("显示文件树完成");
    }
Exemple #14
0
 /// <summary>
 /// 根据指定ID,递归删除文件夹下所有文件!
 /// </summary>
 /// <param name="node"></param>
 /// <param name="fileID"></param>
 private static void DeleteFileByID(FileTreeNode node, string fileID)
 {
     if (node.SubNodes != null)
     {
         List <int> listRemove = new List <int>();
         for (int i = 0; i < node.SubNodes.Count; i++)
         {
             //如果是一个文件
             if (node.SubNodes[i].SubNodes == null)
             {
                 if (node.SubNodes[i].FileID == fileID)
                 {
                     listRemove.Add(i);
                 }
             }
             else
             {
                 //DeleteFileByID(node.SubNodes[i], fileID);
             }
         }
         foreach (int i in listRemove)
         {
             node.SubNodes.RemoveAt(i);
         }
     }
 }
Exemple #15
0
        private void treeView_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            e.CancelEdit = true;

            if (e.Label != null)
            {
                Debug.Assert(e.Node != rootNode);

                if (!e.Node.Parent.Nodes.ContainsKey(e.Label))
                {
                    FileTreeNode node = (FileTreeNode)e.Node;

                    if (node.File.Type == FileSystemObjectType.File)
                    {
                        if (String.Compare(Path.GetExtension(e.Label), node.File.Info.Extension, StringComparison.InvariantCultureIgnoreCase) != 0)
                        {
                            DialogResult result = MessageBox.Show("You want to change extension. File could loose its meaning. Do you really want to do that?", "File Extension Change", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                            if (result != DialogResult.OK)
                            {
                                return;
                            }
                        }
                    }

                    node.File.Rename(e.Label);
                }
                else
                {
                    MessageBox.Show("File or directory of specified name already exists.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Exemple #16
0
        private void dummyContextMenu_Opening(object sender, CancelEventArgs e)
        {
            e.Cancel = true;

            if (treeView.SelectedNode != null)
            {
                FileTreeNode node = (FileTreeNode)treeView.SelectedNode;
                PopupMenu    menu;

                if (node.File.Type == FileSystemObjectType.File)
                {
                    menu = fileMenu;
                }
                else
                {
                    menu = dirMenu;
                }

                bool isRootSelected = treeView.SelectedNode == rootNode;

                menu.MenuCommands["Paste"].Enabled          = Clipboard.ContainsFileDropList() || Clipboard.ContainsData(typeof(CutFileList).ToString());
                menu.MenuCommands["Cut"].Enabled            = !isRootSelected;
                menu.MenuCommands["Rename"].Enabled         = !isRootSelected;
                menu.MenuCommands["Delete"].Enabled         = !isRootSelected;
                menu.MenuCommands["Show All Files"].Checked = ShowAllFiles;
                menu.TrackPopup(Control.MousePosition);
            }
        }
Exemple #17
0
        public void PopulateDrives()
        {
            bool first = true;

            if (!cancelToken.IsCancellationRequested)
            {
                foreach (var fileInfo in EnumerateDrives(Enumerator, connection))
                {
                    if (cancelToken.IsCancellationRequested)
                    {
                        break;
                    }

                    // Windows drive letter paths have a '\' at the end. Linux drive paths won't have a '\'.
                    var node = new FileTreeNode
                    {
                        Name     = Convert.ToString(fileInfo.path, CultureInfo.InvariantCulture).TrimEnd('\\'),
                        FullPath = fileInfo.path
                    };

                    this.fileTree.RootNode.AddChildNode(node);

                    if (first)
                    {
                        this.fileTree.SelectedNode = node;
                        first = false;
                    }

                    node.Children = this.GetChildren(node.FullPath);
                }
            }
        }
Exemple #18
0
        public virtual async ValueTask <Tuple <ResponseStatus, object> > GetImage(long imageId)
        {
            var image = await MangaManager.GetImage(imageId);

            FileTreeNode path = null;

            if (image != null)
            {
                path = LibraryManager.GeFileTreeNode(image.PathId);
            }

            if (path == null)
            {
                return(new Tuple <ResponseStatus, object>(
                           ResponseStatus.NotFound,
                           null));
            }

            var data = await path.ReadAllBytes();

            return(new Tuple <ResponseStatus, object>(
                       data != null
                    ? ResponseStatus.Success
                    : ResponseStatus.NotFound,
                       data));
        }
Exemple #19
0
        public static FileTreeNode UploadTextFile(string sContent, string nodeName, string strID, string strInfo, ContentKind cKind, string strApp)
        {
            TFile file = new TFile();

            file.FileContent = System.Text.Encoding.UTF8.GetBytes(sContent);
            file.FileId      = strID;
            file.FileInfo    = strInfo;
            file.FileKind    = (TContentKind)cKind;
            file.FileSize    = file.FileContent.Length;
            file.FromApp     = strApp;
            file.FileOwner   = GetValidator().VssID;
            ClientAdapt.Open();
            TVssService.Client client   = ClientAdapt.GetClient();
            string             strNewID = client.Put(GetValidator(), file);

            ClientAdapt.Close();

            FileTreeNode fileTreeNode = new FileTreeNode();

            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
            fileTreeNode.CreateDate = (uint)(DateTime.Now - startTime).TotalSeconds;
            fileTreeNode.FileID     = strNewID;
            fileTreeNode.FileInfo   = strInfo;
            fileTreeNode.FileKind   = cKind;
            fileTreeNode.FileSize   = (ulong)file.FileContent.Length;
            fileTreeNode.FromApp    = strApp;
            fileTreeNode.SubNodes   = null;
            fileTreeNode.FileOwner  = GetValidator().VssID;
            fileTreeNode.NodeName   = nodeName;

            return(fileTreeNode);
        }
Exemple #20
0
        private void btnUpload_Click(object sender, EventArgs e)
        {
            FileTreeNode file = null;

            //针对直接上传图片,却选择的是微博类型的情况做的特殊处理。
            do
            {
                if (strUploadPath.Substring(strUploadPath.LastIndexOf('.') + 1).ToLower() == "jpg")
                {
                    if (cbFileKind.Text == "Weibo")
                    {
                        file = BLLControl.UploadFile(strUploadPath, fileID, txtFileInfo.Text, ContentKind.Picture, "VssDisk");
                        break;
                    }
                }

                //正常情况
                file = BLLControl.UploadFile(strUploadPath, fileID, txtFileInfo.Text, (ContentKind)(cbFileKind.SelectedIndex + 1), "VssDisk");
                break;
            }while (true);


            //如果是上传不是替换
            if (fileID == "")
            {
                UIController.AddNode(file);
            }
            else
            {
                UIController.ReplaceNodeByFileID(fileID, null, file);
            }

            //如果上传的是一张图片
            if (strUploadPath.Substring(strUploadPath.LastIndexOf('.') + 1).ToLower() == "jpg")
            {
                if (cbFileKind.Text == "Weibo")
                {
                    BlogMsg blog = new BlogMsg();

                    blog.strUin        = BLLControl.GetValidator().VssID;
                    blog.strFromClient = BLLControl.GetValidator().AppID;
                    blog.strObjPicUrl  = file.FileID;
                    blog.strMsgID      = "";
                    blog.strNickName   = "";
                    blog.strContent    = "";
                    DateTime dt = DateTime.Now;
                    blog.strWriteDate = dt.Year + "年" + dt.Month + "月" + dt.Day + "日 " + dt.Hour + ":" + dt.Minute + ":" + dt.Second;
                    blog.strObjKind   = "None";

                    blog.imgHeadSrc = "";
                    file            = BLLControl.UploadTextFile(JsonConvert.SerializeObject(blog), strUploadPath.Substring(strUploadPath.LastIndexOf("\\") + 1), "", txtFileInfo.Text, (ContentKind)(cbFileKind.SelectedIndex + 1), "VssDisk");
                    blog.strMsgID   = file.FileID;
                    file            = BLLControl.UploadTextFile(JsonConvert.SerializeObject(blog), strUploadPath.Substring(strUploadPath.LastIndexOf("\\") + 1), file.FileID, txtFileInfo.Text, (ContentKind)(cbFileKind.SelectedIndex + 1), "VssDisk");
                    UIController.AddNode(file);
                }
            }

            this.Close();
        }
Exemple #21
0
        //Recurse seaching in folders on drives
        FileTreeNode MMSearch(string sDir)
        {
            FileTreeNode curr = new FileTreeNode();
            string       l    = sDir.Remove(0, sDir.LastIndexOf('\\') + 1);

            if (l == "")
            {
                l = sDir;
            }
            try
            {
                if (Directory.GetDirectories(sDir).Count() == 0)
                {
                    if (HasMMFiles(sDir))
                    {
                        curr = new FileTreeNode(GetFileNodes(sDir).ToArray <FileTreeNode>(), l);
                        return(curr);
                    }
                    else
                    {
                        return(null);
                    }
                }
                if (Directory.GetDirectories(sDir).Count() > 0)
                {
                    List <FileTreeNode> children = new List <FileTreeNode>();
                    FileTreeNode        child;
                    foreach (string d in Directory.GetDirectories(sDir))
                    {
                        child = MMSearch(d);
                        if (child != null)
                        {
                            children.Add(child);
                        }
                    }
                    if (HasMMFiles(sDir))
                    {
                        foreach (FileTreeNode f in GetFileNodes(sDir))
                        {
                            children.Add(f);
                        }
                    }
                    if (children.Count != 0)
                    {
                        curr = new FileTreeNode(children.ToArray <FileTreeNode>(), l);
                        return(curr);
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
            catch (Exception ex)
            {
                return(null);
            }
            return(null);
        }
Exemple #22
0
 public ScanMangaTask(FileTreeNode mangaPath, string name, IMetadataScraper scraper, ScheduleTask parent)
 {
     MangaPath = mangaPath;
     Scraper   = scraper;
     Name      = name;
     Scraper   = scraper;
     Parent    = parent;
 }
        public void AddFileTreeNodeChildTest()
        {
            FileTreeNode node1 = new FileTreeNode();
            FileTreeNode node2 = new FileTreeNode();

            node1.AddChildNode(node2);
            Assert.NotNull(node1.Children);
        }
Exemple #24
0
    public FileTreeNode GenerateFileTree(List <string> list)
    {
        FileTreeNode root = new FileTreeNode();

        root = GenerateFileNode("", "生物/", list);
        OpenAllNode(root);
        return(root);
    }
Exemple #25
0
 public static FileTreeNode Get()
 {
     if (_instance == null)
     {
         _instance = new FileTreeNode();
     }
     return(_instance);
 }
Exemple #26
0
        private void Paste(FileTreeNode node, StringCollection files, bool copy)
        {
            DirectoryInfo destDir = (DirectoryInfo)node.File.Info;

            foreach (string path in files)
            {
                FileSystemObject dest;
                FileSystemObject src;

                if (File.Exists(path))
                {
                    src  = (FileSystemObject) new FileInfo(path);
                    dest = (FileSystemObject) new FileInfo(Path.Combine(destDir.FullName, src.Info.Name));
                }
                else if (Directory.Exists(path))
                {
                    src  = (FileSystemObject) new DirectoryInfo(path);
                    dest = (FileSystemObject) new DirectoryInfo(Path.Combine(destDir.FullName, src.Info.Name));
                }
                else
                {
                    continue;
                }

                if (String.Compare(src.Info.FullName, dest.Info.FullName, StringComparison.InvariantCultureIgnoreCase) == 0)
                {
                    continue;
                }

                if (dest.Info.Exists)
                {
                    DialogResult result = MessageBox.Show("File or directory " + dest.Info.Name + " already exists. Overwrite?", "Warning", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);

                    switch (result)
                    {
                    case DialogResult.Yes:
                        dest.Delete();
                        break;

                    case DialogResult.No:
                        continue;

                    case DialogResult.Cancel:
                        return;
                    }
                }

                if (copy)
                {
                    src.CopyTo(dest.Info.FullName);
                }
                else
                {
                    src.MoveTo(dest.Info.FullName);
                }
            }
        }
Exemple #27
0
 public void InsertNode(FileTreeNode node)
 {
     if (this.children == null)
     {
         this.children = new List <FileTreeNode>();
     }
     children.Add(node);
     node.parent = this;
 }
Exemple #28
0
 /// <summary>
 /// 初始化根节点数据
 /// </summary>
 /// <param name="fileTreeNode"></param>
 public static void InitData(FileTreeNode fileTreeNode)
 {
     BLLControl.SetRoot(fileTreeNode);
     SetFileTreeByObject(fileTreeNode);
     CurrentNode = fileTreeNode.SubNodes[0];
     SetFolderInfoByObject(CurrentNode);
     SetFileInfoByObject(CurrentNode);
     uiStackFileTreeNode.Push(CurrentNode);
 }
Exemple #29
0
        private void treeViewproject_DoubleClick(object sender, EventArgs e)
        {
            FileTreeNode node = treeViewproject.SelectedNode as FileTreeNode;

            if (node != null)
            {
                LoadExcelSheets(node.Tag.ToString());
            }
        }
Exemple #30
0
        /// <summary>
        /// 用户执行前进
        /// </summary>
        public static void GoForward()
        {
            if (uiGoForwardFileTreeNode.Count == 0)
            {
                return;
            }
            FileTreeNode fileNode = uiGoForwardFileTreeNode.Pop();

            TurnCurrentNode(fileNode);
        }
Exemple #31
0
        /// <summary>
        /// 使用根结点来实现目录结构
        /// </summary>
        /// <param name="treeView">树型目录组件的引用</param>
        /// <param name="rootNode">根结点</param>
        private static void SetFileTreeByObject(FileTreeNode rootFileNode)
        {
            TreeNode rootNode = new TreeNode();

            SetTreeNodeByObject(ref rootNode, rootFileNode);
            uiTreeNode.Nodes.Clear();
            foreach (TreeNode node in rootNode.Nodes)
            {
                uiTreeNode.Nodes.Add(node);
            }
        }
Exemple #32
0
        private void fileWatcher_Changed(object sender, FileSystemEventArgs e)
        {
            if (showAllFiles || extensions.Contains(Path.GetExtension(e.FullPath))) {
                string[] path = FileList.SplitPath(e.Name);

                FileTreeNode node = rootNode;
                for (int i = 0; i < path.Length - 1; i++) {
                    Debug.Assert(node.File.Type == FileSystemObjectType.Directory);

                    FileTreeNode childNode = (FileTreeNode)node.Nodes[path[i]];

                    if (childNode == null) {
                        ReloadDir(node);
                        return;
                    }

                    node = childNode;
                }

                switch (e.ChangeType) {
                    case WatcherChangeTypes.Created:
                        FileTreeNode n = new FileTreeNode();
                        n.File = new FileSystemObject(new FileInfo(e.FullPath));
                        node.Nodes.Add(n);
                        node.Expand();
                        if (n.FullPath == editItem) {
                            editItem = null;
                            n.EnsureVisible();
                            n.BeginEdit();
                        }
                        break;

                    case WatcherChangeTypes.Deleted:
                        node.Nodes.RemoveByKey(path[path.Length - 1]); // Name
                        break;
                }

                NeedCompilation = true;
            }
        }
Exemple #33
0
        private void Paste(FileTreeNode node, StringCollection files, bool copy)
        {
            DirectoryInfo destDir = (DirectoryInfo)node.File.Info;

            foreach (string path in files) {
                FileSystemObject dest;
                FileSystemObject src;

                if (File.Exists(path)) {
                    src = (FileSystemObject)new FileInfo(path);
                    dest = (FileSystemObject)new FileInfo(Path.Combine(destDir.FullName, src.Info.Name));
                }
                else if (Directory.Exists(path)) {
                    src = (FileSystemObject)new DirectoryInfo(path);
                    dest = (FileSystemObject)new DirectoryInfo(Path.Combine(destDir.FullName, src.Info.Name));
                }
                else
                    continue;

                if (String.Compare(src.Info.FullName, dest.Info.FullName, StringComparison.InvariantCultureIgnoreCase) == 0)
                    continue;

                if (dest.Info.Exists) {
                    DialogResult result = MessageBox.Show("File or directory " + dest.Info.Name + " already exists. Overwrite?", "Warning", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);

                    switch (result) {
                        case DialogResult.Yes:
                            dest.Delete();
                            break;

                        case DialogResult.No:
                            continue;

                        case DialogResult.Cancel:
                            return;
                    }
                }

                if (copy) {
                    src.CopyTo(dest.Info.FullName);
                }
                else {
                    src.MoveTo(dest.Info.FullName);
                }
            }
        }
Exemple #34
0
        /// <returns>Added files count.</returns>
        private int ReloadDir(FileTreeNode node)
        {
            DirectoryInfo dir = node.File.Info as DirectoryInfo;
            Debug.Assert(dir != null, "dir != null");

            node.Nodes.Clear();

            int count = 0;

            FileInfo[] files = dir.GetFiles();

            foreach (FileInfo f in files) {
                if (showAllFiles || extensions.Contains(f.Extension)) {
                    FileTreeNode n = new FileTreeNode();
                    n.File = (FileSystemObject)f;
                    node.Nodes.Add(n);
                    count++;
                }
            }

            DirectoryInfo[] directories = dir.GetDirectories();

            foreach (DirectoryInfo d in directories) {
                FileTreeNode n = new FileTreeNode();
                n.File = (FileSystemObject)d;
                node.Nodes.Add(n);

                count += ReloadDir(n);
            }

            if (count > 0) {
                node.Expand();
                NeedCompilation = true;
            }

            return count;
        }
Exemple #35
0
        //LOAD CAY
        private void LoadTreeView()
        {
            treeViewproject.Nodes.Clear();
             DirectoryInfo dir = new DirectoryInfo(CurrentProjectPath);

             if (dir.Exists)
             {
                 FolderTreeNode projectNode = new FolderTreeNode();
                 projectNode.Text = dir.Name;
                 projectNode.Tag = dir;
                 //projectNode.Name = "Folder";
                 //treenode.ImageIndex = 0;
                 projectNode.ImageIndex = 1;
                 projectNode.SelectedImageIndex = 1;
                 // GetDirectories(dir.GetDirectories(), treenode);
                 treeViewproject.Nodes.Add(projectNode);

                 try
                 {
                     DirectoryInfo[] directories = dir.GetDirectories();
                     if (directories.Length > 0)
                     {
                         foreach (DirectoryInfo directory in directories)
                         {
                             FolderTreeNode folderNode = new FolderTreeNode();
                             folderNode.Text = directory.Name;
                             folderNode.Tag = directory.Name;
                             projectNode.Nodes.Add(folderNode);
                             folderNode.ImageIndex = folderNode.SelectedImageIndex = 1;
                             foreach (FileInfo file in directory.GetFiles())
                             {

                                 if (file.Exists)
                                 {
                                     FileTreeNode fileNode = new FileTreeNode();
                                     fileNode.Text = file.Name;
                                     fileNode.Tag = file.FullName;
                                     folderNode.Nodes.Add(fileNode);
                                     fileNode.ImageIndex = fileNode.SelectedImageIndex = 0;
                                     //treenode.Name = "Folder"

                                 }

                             }

                         }
                         treeViewproject.ExpandAll();

                     }

                 }
                 catch (Exception ex)
                 {
                     System.Windows.Forms.MessageBox.Show(ex.Message);

                 }
                 Text = treeViewproject.Nodes[0].Text + " - " + "Automation";
             }
        }
Exemple #36
0
        private void treeView_MouseMove(object sender, MouseEventArgs e)
        {
            if (draggedNode != null && (e.Button & MouseButtons.Left) != 0) {
                if (!dragRect.Contains(e.Location)) {
                    StringCollection files = new StringCollection();
                    files.Add(draggedNode.File.Info.FullName);
                    DataObject o = new DataObject();
                    o.SetFileDropList(files);

                    draggedNode = null;
                    dragRect = Rectangle.Empty;

                    DoDragDrop(o, DragDropEffects.Copy | DragDropEffects.Move);
                }
            }
        }
Exemple #37
0
 private void treeView_MouseUp(object sender, MouseEventArgs e)
 {
     draggedNode = null;
     dragRect = Rectangle.Empty;
 }
Exemple #38
0
        private void addNewFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AddFile1 newFile = new AddFile1();

            //newFile.labelX3.Text = newFile.labelX3.Text + "-" + treeViewproject.SelectedNode.Text;
            newFile.ShowDialog();
            main main = new main();

            Excel.Application xlApp = default(Excel.Application);
            Excel.Workbook xlWorkBook = default(Excel.Workbook);
            Excel.Worksheet xlWorkSheet = default(Excel.Worksheet);

            FileTreeNode treeNode = new FileTreeNode();
            treeNode.Text = newFile.txtName.Text + "." + newFile.cboType.Text;
            treeNode.Tag = CurrentProjectPath + @"\" + treeViewproject.SelectedNode.Text + @"\" + treeNode.Text;
            treeNode.Name = "File";
            treeNode.ImageIndex = newFile.cboType.SelectedIndex;
            newFile.Close();
            if (newFile.txtName.Text != "")
            {
                treeViewproject.SelectedNode.Nodes.Add(treeNode);
                treeViewproject.SelectedNode.ExpandAll();
                //@new new1 = new @new();
                //string path = new1.ProjectPath;
                //string fName = path + @"\" + treeViewproject.SelectedNode.Tag + @"\" + treeNode.Tag;
                string fName = treeViewproject.Nodes[0].Tag + @"\" + treeViewproject.SelectedNode.Text + @"\" + treeNode.Text;
                 //const string fName =@"F:\abc.xls";
                try
                {
                    object misValue = System.Reflection.Missing.Value;
                    xlApp = new Excel.Application();
                    xlWorkBook = xlApp.Workbooks.Add(misValue);
                    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
                    xlWorkBook.SaveAs(fName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                    xlWorkBook.Close(true, misValue, misValue);
                    xlApp.Quit();
                    releaseObject(xlWorkSheet);
                    releaseObject(xlWorkBook);
                    releaseObject(xlApp);
                }
                finally
                {
                    if (xlApp != null)
                        releaseObject(xlApp);
                    if (xlWorkBook != null)
                        releaseObject(xlWorkBook);
                    if (xlWorkSheet != null)
                        releaseObject(xlWorkSheet);
                }
                //if (System.IO.File.Exists(fName))
                //{
                //    //if (System.Windows.Forms.MessageBox.Show("Would you like to open the excel file?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                //    //{
                //        //try
                //        //{
                //        //    System.Diagnostics.Process.Start(fName);
                //        //}
                //        //catch (Exception ex)
                //        //{
                //        //    System.Windows.Forms.MessageBox.Show("Error opening the excel file." + Environment.NewLine +
                //        //      ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                //        //}
                //    //}
                //}

               //CompoundDocument _doc = CompoundDocument.Open(fName);
            }
        }
Exemple #39
0
        private void treeView_MouseDown(object sender, MouseEventArgs e)
        {
            draggedNode = (FileTreeNode)treeView.GetNodeAt(e.Location);

            if (draggedNode == rootNode)
                draggedNode = null;

            if (draggedNode != null) {
                Size dragSize = SystemInformation.DragSize;
                dragRect = new Rectangle(new Point(e.X - (dragSize.Width / 2), e.Y - (dragSize.Height / 2)), dragSize);
            }
        }
Exemple #40
0
        private void OpenProject()
        {
            treeViewproject.Nodes.Clear();
            tabControl1.TabPages.Clear();
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            fbd.ShowNewFolderButton = false;
            fbd.Description = "Mời bạn chọn thư mục";
            fbd.RootFolder = Environment.SpecialFolder.MyComputer;

            if (fbd.ShowDialog() == DialogResult.OK)
            {
                TreeNode treenode;
                CurrentProjectPath = fbd.SelectedPath;
                //string path1 = fbd.SelectedPath + treeViewproject.SelectedNode.Tag;
                //doc = CompoundDocument.Open(path);
                DirectoryInfo dir = new DirectoryInfo(CurrentProjectPath);

                if (dir.Exists)
                {
                    FolderTreeNode projectNode = new FolderTreeNode();
                    projectNode.Text = dir.Name;
                    projectNode.Tag = dir;
                    //projectNode.Name = "Folder";
                    //treenode.ImageIndex = 0;
                    projectNode.ImageIndex = 1;
                    projectNode.SelectedImageIndex = 1;
                    // GetDirectories(dir.GetDirectories(), treenode);
                    treeViewproject.Nodes.Add(projectNode);

                    try
                    {
                        DirectoryInfo[] directories = dir.GetDirectories();
                        if (directories.Length > 0)
                        {
                            foreach (DirectoryInfo directory in directories)
                            {
                                FolderTreeNode folderNode =new FolderTreeNode();
                                folderNode.Text = directory.Name;
                                folderNode.Tag = directory.Name;
                                projectNode.Nodes.Add(folderNode);
                                folderNode.ImageIndex = folderNode.SelectedImageIndex = 1;
                                foreach (FileInfo file in directory.GetFiles())
                                {

                                    if (file.Exists)
                                    {
                                        FileTreeNode fileNode = new FileTreeNode();
                                        fileNode.Text = file.Name;
                                        fileNode.Tag = file.FullName;
                                        folderNode.Nodes.Add(fileNode);
                                        fileNode.ImageIndex = fileNode.SelectedImageIndex = 0;
                                        //treenode.Name = "Folder"

                                    }

                                }

                            }
                            treeViewproject.ExpandAll();

                        }

                    }
                    catch (Exception ex)
                    {
                        System.Windows.Forms.MessageBox.Show(ex.Message);

                    }
                    Text = treeViewproject.Nodes[0].Text + " - " + "Automation";
                }

            }
        }