Как создать папки в ASP.NET в коде позади? - PullRequest
0 голосов
/ 02 апреля 2009

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

17 голосов
/ 02 апреля 2009

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

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

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

0 голосов
/ 02 апреля 2009

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

int SHCreateDirectory(HWND hwnd, LPCWSTR pszPath);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...