如何查找目录中子文件夹的名称

Bak*_*ato 3 c# directory substring file path

我以前曾问过此类问题,但这个问题有所不同。我需要找到文件夹的根文件夹。

例如:

我得到的是

C:\Program Files (x86)\EdisonFactory\NetOffice
C:\Program Files (x86)\EdisonFactory\NetOffice
C:\Program Files (x86)\EdisonFactory\NetOffice
C:\Program Files (x86)\EdisonFactory\NetOffice
C:\Program Files (x86)\EdisonFactory\NetOffice\Plugins
C:\Program Files (x86)\EdisonFactory\NetOffice\Plugins
C:\Program Files (x86)\EdisonFactory\NetOffice\Plugins
Run Code Online (Sandbox Code Playgroud)

我之前使用过这段代码:

DsVersions.ASSEMBLY2Row row = dsVersions.ASSEMBLY2.NewASSEMBLY2Row();
row.FOLDER = Path.GetDirectoryName(fileName);
Run Code Online (Sandbox Code Playgroud)

然后我找到了这段代码并认为这就是答案:

DsVersions.ASSEMBLY2Row row = dsVersions.ASSEMBLY2.NewASSEMBLY2Row();
DirectoryInfo directoryName = new DirectoryInfo(Path.GetDirectoryName(fileName));
row.FOLDER = directoryName.Name;
Run Code Online (Sandbox Code Playgroud)

这段代码之后我得到了这个:

NetOffice
NetOffice
NetOffice
NetOffice
Plugins
Plugins
Plugins
Run Code Online (Sandbox Code Playgroud)

它很接近,但我再次需要的只是插件。我尝试过执行路径和文件,但它不起作用,我总是收到错误。

Bry*_*tts 6

根据问题和各种评论,我推断:

  • 你手上有一个文件路径
  • 该文件位于以上 级别Plugins,即:

C:\Program Files (x86)\EdisonFactory\NetOffice

  • 您需要获取该目录下的目录,但不是该目录本身

如果这些假设成立,那么这将满足您的要求:

var directoryName = "C:\Program Files (x86)\EdisonFactory\NetOffice";

var directory = new DirectoryInfo(directoryName);

row.FOLDER = directory
    .GetDirectories()
    .Select(subDirectory => subDirectory.Name)
    .Single();
Run Code Online (Sandbox Code Playgroud)