簡體   English   中英

更改名稱(如果已經存在)

[英]Changing name if that already exists

我怎樣才能改變foldername ,如果存在與該名其他一些文件夾?

我以下面的方式嘗試了,但是沒有用:(

    private int ik;
    protected void Button1_Click(object sender, EventArgs e)
    {
        string folderpath = @"C:\Users\nouser\Documents\Visual Studio 2010\WebSites\folders";
        string foldername = TextBox1.Text;
        string newPath = System.IO.Path.Combine(folderpath, foldername);
        if (Directory.Exists(Path.Combine(folderpath, foldername)))
        {
            foldername = foldername + Convert.ToString(ik);
            ik = ik + 1;
        }
        else
        {
            System.IO.Directory.CreateDirectory(newPath);
            Response.Write("Folder created");
        }
    }

此代碼能夠創建一個新文件夾,但是如果“ newfolder”已經存在,則無法將文件夾名稱從“ newfolder”更改為“ newfolder1”。

我假設您想要一些東西,如果您嘗試創建一個名為“ foo”的文件夾,但是已經存在一個名為“ foo”的文件夾,那么您希望將新文件夾命名為“ foo1”嗎? 如果是這樣,您將必須檢測該文件夾是否存在並為其創建一個新名稱。 你可以做這樣的事情

var count = 1;
var originalPath = newPath;
while(Directory.Exists(newPath)){
     newPath = originalPath + count;
     count++;
}

Directory.CreateDirectory(newPath);

這可以確保您的新路徑尚不存在,如果存在,則將確保您獲得文件夾的唯一名稱。

在您的示例中,我不確定您對變量的處理方式

ik

我認為這就是您嘗試創建唯一目錄的位置,但是如果您在那里已經有newFolder1會發生什么呢? 這就是為什么您應該使用while循環來繼續檢查的原因

使用system.IO.Directory移動

System.IO.Directory.Move("newfolder","newfolder1");

有關更多信息,請參見msdn:

http://msdn.microsoft.com/zh-CN/library/system.io.directory.move.aspx

像這樣使用Move:

System.IO.Directory.Move("old name", "new name");

暫無
暫無

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

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