Почему доступ запрещен при попытке переместить каталог?

У меня есть две директории: 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));

Те же разрешения, но лучшее формирование пути. Спасибо за вашу помощь всем!

Другие вопросы по тегам