Как создать папку на сервере из кода в C #? - PullRequest
0 голосов
/ 08 сентября 2011

Есть ли способ показать пользователю всплывающее окно с именем для создания папки

И при этом, если он не хочет создавать папку, ему должен быть показан список папок, в которые он хочет сохранитьфайл

Правильно ли мне создать всплывающее окно с javascript со списком папок на моем сервере и поместить текстовое поле и кнопку для сохранения нового, а в коде мы создадим каталог в коде, переданном с текстовым полем?

Ответы [ 7 ]

4 голосов
/ 26 марта 2013
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));
2 голосов
/ 19 октября 2011
                        string targetPath = Server.MapPath("FolderName"); //with complete path
                        if (!System.IO.Directory.Exists(targetPath))
                        {
                            System.IO.Directory.CreateDirectory(targetPath);                               
                            fileToUpload.PostedFile.SaveAs(targetPath + ImageFileName);
                        }
                        else
                        {
                            fileToUpload.PostedFile.SaveAs(targetPath + ImageFileName);
                        }
0 голосов
/ 08 сентября 2011

Веб-приложения и протокол HTTP не поддерживают прямые манипуляции с файловой системой на стороне сервера.На самом деле, это была бы опасная идея.

Похоже, у вас есть какая-то базовая папка на веб-сервере, где вы хотите, чтобы пользователи могли загружать файлы, с некоторым пользовательским контролем над подпапками и расположением папки.загруженный файл.Я бы предложил сделать это, представив файловую систему в виде дерева или в виде списка ссылок (где ссылки позволяют перемещаться вверх / вниз по дереву папок).Объедините это с вводом файла, и вы получите решение.ОДНАКО, будьте очень осторожны, чтобы контролировать и очищать указанное имя файла для загруженного файла.Существует множество комбинаций (например, использование «..»), которые могут позволить пользователю взломать нежелательные местоположения файлов на вашем сервере.

0 голосов
/ 08 сентября 2011

Как я уже упоминал, комментируя, что Функциональность, такая как SaveFileDialog, возможна только в приложении Windows Forms, вы не можете сделать это в asp.net

Альтернативы в asp.net трудныоднако в качестве альтернативы в Интернете доступен сторонний редактор под названием CKEditor 3.x Руководство разработчика .

Вы можете использовать Браузер файлов (Uploader) дляцель, которую вы хотите достичь.

0 голосов
/ 08 сентября 2011

Если вы разрабатываете веб-приложения (я вижу, вы пометили свой вопрос как asp.net), вам не нужно беспокоиться о всплывающем окне.Вы просто отправляете файл через Response, и окно загрузки будет показано браузером.

0 голосов
/ 08 сентября 2011

Используя пример, приведенный в Как создать папку или файл Вы можете создать папку, но в asp.net вы не можете использовать диалоговое окно открытия файла или сохранить диалоговое окно файла, это будет работать только в C # Windows приложения формы.

0 голосов
/ 08 сентября 2011

для создания папки:

 System.IO.Directory.CreateDirectory(newPath);//newpath is your folder creating path
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...