Почему доступ запрещен при попытке переместить каталог?
У меня есть две директории: folder1 и folder2. Папка1 содержит файл. Я хотел бы переместить folder1 в folder2, чтобы получить в folder2\folder1. Когда я пытаюсь сделать это с кодом C# ниже, я получаю:
System.IO.IOException: доступ к пути 'E:\www\dev\test\MoveDirectories\folder1' запрещен.
Соответствующий код:
// In Page_Load.
MoveDirectory("folder1");
// Method for moving directories.
protected void MoveDirectory(string strMoveThis)
{
try
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(Server.MapPath(strMoveThis));
dir.MoveTo(Server.MapPath("\\folder2\\"));
}
catch (Exception ex)
{
Response.Write(ex);
}
}
Мой пул приложений ASP.NET 4.0 имеет права на изменение папки1. На самом деле это тестовое приложение с кодом, который был взят из гораздо большего приложения, поэтому в нем не предусмотрено все тестирование и обработка исключений, которые можно было бы ожидать.
РЕДАКТИРОВАТЬ: я обнаружил, что я могу создавать файлы в папке.
1 ответ
Ненавижу отвечать на свой вопрос, но...
В основном я обновил это:
dir.MoveTo(Server.MapPath("\\folder2\\"));
к этому:
dir.MoveTo(Server.MapPath("folder2\\" + strMoveThis));
Те же разрешения, но лучшее формирование пути. Спасибо за вашу помощь всем!