Как создать папки в ASP.NET в коде позади?

Я хочу создавать динамические папки во время выполнения. Имена папок, вводимые через 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>

Теперь, как мне написать код для выполнения работы?


person user59637    schedule 02.04.2009    source источник
comment
какой язык? я тоже не вижу кода   -  person Nathan Koop    schedule 02.04.2009
comment
Ваше сообщение трудно читать. Мы не знаем, интересует ли вас способ создания каталога... (во всяком случае, на каком языке) или вам нужно какое-то указание о том, как разработать алгоритм, который выбирает имя каталога, который должен быть создан.   -  person fulmicoton    schedule 02.04.2009


Ответы (2)


Ваш вопрос немного неясен, но я все равно постараюсь немного помочь вам.

Прежде всего убедитесь, что вы импортируете/используете (в зависимости от языка) пространство имен 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));

В любом случае это должно помочь вам приступить к созданию папки.

person Mitchel Sellers    schedule 02.04.2009

Вы можете прочитать каталог для подкаталогов, сравнить имена каталогов с заданным именем (введенным в текстовое поле). Если он найден, вы можете добавить значение счетчика. Вам нужно увеличить этот счетчик, если имя папки похоже на «()». После получения правильного имени, то есть после добавления значения счетчика, вы можете вызвать API win32 для создания каталога.

int SHCreateDirectory(HWND hwnd, LPCWSTR pszPath);

РЕДАКТИРОВАТЬ: вы можете вызвать конкретный API в зависимости от ОС, технологии для создания каталога. Выше для Win32.

person Vinay    schedule 02.04.2009
comment
Поскольку проект ASP.NET, я рекомендую использовать методы .NET System.IO. - person Mitchel Sellers; 02.04.2009
comment
Это способ создать папку в win32. Вы не упомянули ASP.net, поэтому я дал образец Win32. - person Vinay; 03.04.2009