c# - 更改名称(如果已经存在)

标签 c# asp.net

如果存在其他具有该名称的文件夹,该如何更改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循环来继续检查的原因

关于c# - 更改名称(如果已经存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8955011/

相关文章:

c# - 从 jquery/javascript 调用 Windows 服务 wcf 服务

c# - 为什么有些图片用我的功能后歪了?

asp.net - 编译器失败,错误代码为-1073741819

asp.net - 如果MS Chart Control没有数据,我可以显示一条消息吗?

c# - 从 Xaml 文件创建数据对象

c# - ASP.NET Core 2 中的依赖注入(inject)抛出异常

c# - 在 Telerik Radgrid 中,如何根据组标题的数量对结果进行分页?

c# - Directory.GetFiles 只获取今天的文件

c# - 如何在 Visual Studio 中更改整个解决方案的项目名称?

c# - HttpContext null,代码路径采用不同的线程