コード例 #1
0
        /// <summary>
        /// Creates a blank .prg file.
        /// </summary>
        private void CreateNewFile()
        {
            int fileNumber = 1;
            bool fileCreated = false;

            ExplorerNode parentNode = (ExplorerNode)treFileBrowser.SelectedNode;
            string filePath = parentNode.AbsolutePath;

            while (!fileCreated)
            {
                if (File.Exists(filePath + @"\program" + fileNumber + ".prg"))
                {
                    fileNumber++;
                }
                else
                {
                    try
                    {
                        TextWriter textWriter = new StreamWriter(filePath + @"\program" + fileNumber + ".prg");
                        textWriter.Close();

                        FileNode fileNode = new FileNode(parentNode, @"program" + fileNumber + ".prg");

                        // Repeated code, exactly the same for a folder...
                        parentNode.Children.Add(fileNode);
                        parentNode.Nodes.Add(fileNode);

                        treFileBrowser.SelectedNode = fileNode;
                        treFileBrowser.LabelEdit = true;
                        fileNode.BeginEdit();
                        fileCreated = true;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, Application.ExecutablePath, MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
                    }
                }
            }
        }
コード例 #2
0
ファイル: ProjectPresenter.cs プロジェクト: windygu/Novel8r
        private void createFile(string fileType)
        {
            string typeSpecificFileName = string.Empty;

            if (fileType == MainPresenter.FileTypes.SQL)
            {
                typeSpecificFileName = "untitled.sql";
            }
            else if (fileType == MainPresenter.FileTypes.RTF)
            {
                typeSpecificFileName = "untitled.rtf";
            }

            if (_view.tvwProject.SelectedNodes != null && _view.tvwProject.SelectedNodes.Count > 0)
            {
                // TODO: maybe ProjectNode should inherit from FolderNode
                UltraTreeNode node = _view.tvwProject.SelectedNodes[0];
                if (node is ProjectNode)
                {
                    var           pNode = node as ProjectNode;
                    DirectoryInfo dir   = pNode.FolderObject;

                    var file = new FileInfo(dir + @"\" + typeSpecificFileName);
                    if (!file.Exists)
                    {
                        FileStream fs = file.Create();
                        fs.Close();

                        var fiNode = new FileNode(file);
                        node.Nodes.Add(fiNode);
                        node.Expanded = true;
                        Novel8rProjectHandler.Instance.AddFile(fiNode.GetFilePath());
                        fiNode.BeginEdit();
                    }
                    else
                    {
                        MessageBox.Show("File already exists in project", DialogHelper.Instance.GetApplicationName());
                    }
                }
                else if (node is FolderNode)
                {
                    ProjectNode pn     = getProjectNode(node);
                    var         foNode = node as FolderNode;
                    //  DirectoryInfo dir = pNode.FolderObject;
                    string dirName       = foNode.FullPath;
                    var    sb            = new StringBuilder(dirName);
                    string newReldirname = sb.Replace(pn.Name, "", 0, pn.Name.Length).ToString();
                    //   string newRelFilename = newReldirname + @"\" + typeSpecificFileName;
                    string newdirname = pn.FolderObject + newReldirname;

                    var file = new FileInfo(newdirname + @"\" + typeSpecificFileName);
                    //   FileInfo file = new FileInfo(dir.ToString() + @"\" + typeSpecificFileName);
                    if (!file.Exists)
                    {
                        FileStream fs = file.Create();
                        fs.Close();

                        var fiNode = new FileNode(file);
                        node.Nodes.Add(fiNode);
                        node.Expanded = true;
                        Novel8rProjectHandler.Instance.AddFile(newdirname + @"\" + typeSpecificFileName);
                        fiNode.BeginEdit();
                    }
                    else
                    {
                        MessageBox.Show("File already exists in folder", DialogHelper.Instance.GetApplicationName());
                    }
                }
            }
        }