[英]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.