簡體   English   中英

重命名目錄時,錯誤訪問路徑被拒絕

[英]Error Access to the path is denied when Rename a Directory

我想使用在文本框txtFilenFolderName輸入的新名稱來重命名文件夾:

   protected void btnUpdate_Click(object sender, EventArgs e)
    {
            string[] values = EditValue;

            string oldpath = values[0];// = "D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder"

            string oldName = values[2]; //= New Folder

            string newName = txtFilenFolderName.Text; //= New Folder1
            string newPath = string.Empty;


            if (oldName != newName)
            {                
                    newPath = oldpath.Replace(oldName, newName);
                    Directory.Move(oldpath, newPath);              
            }
            else 
                 lblmessage2.Text = "New name must not be the same as the old ";
        }
    }

嘗試調試:

oldpath = "D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder"
 oldName = New Folder
newName= New Folder1
newpath = "D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder1"

一切似乎都正確,但是當我單擊按鈕編輯--->重命名--->更新--->時發生錯誤: Access to the path is denied D:\\\\C#Projects\\\\website\\\\Lecturer\\\\giangvien\\\\New folder

救命!

路徑"D:\\\\C#Projects\\\\website\\\\Lecturer\\\\giangvien\\\\New folder"可能不存在。 我認為您的意思是"D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder" 我認為@CharmingInferno試圖達到的目的是,當您在字符串前面使用@時,您不需要使用轉義字符,因為它可以像下面這樣處理文本

string g = "\\\\server\\share\\file.txt";   // \\server\share\file.txt
string h = @"\\server\share\file.txt";      // \\server\share\file.txt

但是,您將值放入EditValue字符串數組中時,應更正該值。

我剛才有同樣的問題。

使用

Directory.Move(srcDirectory, dstDirectory);

有時會導致Access to the path /dstDirectory/ is denied例外,有時則不會。

以下為我解決。

new DirectoryInfo(srcDirectory).MoveTo(dstDirectory);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM