gpt4 book ai didi

c# - 当文件夹名称的文件已经存在时,如何创建一个空文件夹?

转载 作者:行者123 更新时间:2023-11-30 13:57:24 24 4
gpt4 key购买 nike

我确信我在这里忽略了一些简单的事情,但我以前从未遇到过这个问题,我无法找到问题的原因。

这是我硬盘上的根目录示例:

C:\Folder-1          ( this is a folder )
C:\Folder-2 ( this is a folder )
C:\somename ( this is a file with no extension )
c:\somename.txt ( this is a file with an extension )

我想用来创建新文件夹的代码是这个方法:

static void Main( string[] args )
{
try
{
// try to create a folder in a directory
// where a file with the same name exsists
createDirectory( "c:\somename" );
}
catch
{
// this catches an exception "Cannot create directory, because it already exsist
}
}

private static void createDirectory(string filePath)
{
string directoryPath = Path.GetDirectoryName(filePath);

// if the directory path does not exsists then create it
if (!Directory.Exists(directoryPath))
{
Directory.CreateDirectory(directoryPath );
}
}

有人看到这里出了什么问题吗?请帮忙,谢谢!

最佳答案

你不能。

不能有两个同名的文件系统条目。

所以要么:

  1. 删除文件,然后为新目录重用旧名称
  2. 重命名文件,然后为新目录重用旧名称
  3. 创建不同名称的目录

请注意,NTFS 起源于 POSIX,而 POSIX 允许多个文件系统条目根据大小写不同,因为文件系统对对象名称区分大小写。 NTFS 继承了这个特性,但是 Win32 会阻止你这样做。因此,使用 Win32 不可能在同一目录中创建一个名为 X 的文件和一个名为 x 的文件,但使用较低级别的系统调用可能是可能的。

参见 https://superuser.com/questions/364057/why-is-ntfs-case-sensitive有关此主题的更多信息。

但是,多个文件系统条目的相同名称是不允许的,而且从来都不是。

关于c# - 当文件夹名称的文件已经存在时,如何创建一个空文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21235629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com