如何在代码隐藏的ASP.NET中创建文件夹?

时间:2009-04-02 15:09:12

标签: .net asp.net directory

我想在运行时创建动态文件夹。通过TextBox输入的文件夹名称和输出将显示在TreeView中。

如果我在textbox1中输入第一个文件夹名称并单击“添加文件夹”按钮,表单将会提交。当我提交多个具有相同名称的文件夹时,输出应该是名称的索引增量。例如。 FooFolder,FooFolder(2),FooFolder(3)等。

如果我删除FooFolder(2)然后重新创建一个名为FooFolder的文件夹,该文件夹应该是FooFolder(2),如果我再创建一个文件夹,那么它应该是FooFolder(4)。

要删除,可以从TreeView中选择特定文件夹,该文件夹将显示在TextBox2中,然后单击“删除文件夹”按钮。

这是我的演示代码:

<asp:Button ID="btnAddFolder" runat="server" Height="24px" Text="Add Folder" 
        Width="148px" onclick="btnAddFolder_Click" />
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <br />
    <asp:Button ID="btnRemoveFolder" runat="server" Text="Remove Folder" />
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    <br />
    <br />
    <asp:TreeView ID="TreeView1" runat="server" ImageSet="XPFileExplorer" 
        NodeIndent="15">
        <ParentNodeStyle Font-Bold="False" />
        <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />
        <SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" 
            HorizontalPadding="0px" VerticalPadding="0px" />
        <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" 
            HorizontalPadding="2px" NodeSpacing="0px" VerticalPadding="2px" />
    </asp:TreeView>

现在我该如何编写代码来完成这项工作?

2 个答案:

答案 0 :(得分:17)

你的问题有点不清楚,但无论如何我会试着让你有点方法。

首先要确保您正在导入/使用(取决于语言)System.IO命名空间以使其正常工作。但你能做的就是这样。

string pathToCreate = "~/UserFolders/" + TextBox1.Text;
if(Directory.Exists(Server.MapPath(pathToCreate))
{
   //In here, start looping and modify the path to create to add a number
   //until you get the value needed
}

//Now you know it is ok, create it
Directory.CreateDirectory(Server.MapPath(pathToCreate));

无论如何,这应该有助于您继续创建文件夹。

答案 1 :(得分:-1)

您可以读取子目录的目录,将目录名称与给定名称(在文本框中输入)进行比较。如果找到,您可以附加计数器值。如果文件夹名称类似于“()”,则需要递增此计数器。 获得正确的名称后,即在附加计数器值后,您可以调用win32 API来创建目录

int SHCreateDirectory(HWND hwnd, LPCWSTR pszPath);

编辑:您可以根据操作系统,技术来调用特定的api来创建目录。以上是Win32。