我想在运行时创建动态文件夹。通过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>
现在我该如何编写代码来完成这项工作?
答案 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。