我以前曾问过这种类型的问题,但这个问题是不同的。我需要找到文件夹的根文件夹。
例如:
我得到的是
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
之前我使用过这段代码:
DsVersions.ASSEMBLY2Row row = dsVersions.ASSEMBLY2.NewASSEMBLY2Row();
row.FOLDER = Path.GetDirectoryName(fileName);
然后我找到了这段代码,并认为这是答案:
DsVersions.ASSEMBLY2Row row = dsVersions.ASSEMBLY2.NewASSEMBLY2Row();
DirectoryInfo directoryName = new DirectoryInfo(Path.GetDirectoryName(fileName));
row.FOLDER = directoryName.Name;
在这段代码之后我得到了这个:
NetOffice
NetOffice
NetOffice
NetOffice
Plugins
Plugins
Plugins
它很接近,但我需要的只是插件。我已经尝试过做Path和File但它不起作用,我总是收到错误。
答案 0 :(得分:3)
根据问题和各种评论,我推断:
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();
答案 1 :(得分:1)
string rootDir = folderBrowserDialog.SelectedPath;
string fileDir = Path.GetDirectoryName(fileName);
if (rootDir.Length < fileDir.Length)
row.FOLDER = fileDir.Substring(rootDir.Length + 1);
这就是诀窍。
答案 2 :(得分:1)
例如: 你有文件夹NetOffice中的子文件夹插件,路径:
C:\ Program Files(x86)\ EdisonFactory \ NetOffice \ Plugins。
如果您只想获取文件夹插件的名称,可以尝试以下代码:
string path = @"C:\Program Files (x86)\EdisonFactory\NetOffice";
DirectoryInfo Dictiontory = new DirectoryInfo(path);
DirectoryInfo []Dir = Dictiontory.GetDirectories();// this get all subfolder //name in folder NetOffice.
string dirName = Dir[0]; //var dirName get name from array Dir;