Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 显示路径中的文件夹名称_C#_Wpf_Directory_Directoryinfo - Fatal编程技术网

C# 显示路径中的文件夹名称

C# 显示路径中的文件夹名称,c#,wpf,directory,directoryinfo,C#,Wpf,Directory,Directoryinfo,我有个问题,我想你可以帮我 我想比较两个目录下面的代码工作,但我有一个问题,以显示结果。我想制作一个步骤列表,展示如何使两个目录的结构显示为相同 我有此代码,我不知道如何从目录1+文件名中添加文件夹名: System.IO.DirectoryInfo dir1 = new System.IO.DirectoryInfo(pathA); System.IO.DirectoryInfo dir2 = new System.IO.DirectoryInfo(pathB); // Take a sna

我有个问题,我想你可以帮我

我想比较两个目录下面的代码工作,但我有一个问题,以显示结果。我想制作一个步骤列表,展示如何使两个目录的结构显示为相同

我有此代码,我不知道如何从目录1+文件名中添加文件夹名:

System.IO.DirectoryInfo dir1 = new System.IO.DirectoryInfo(pathA);
System.IO.DirectoryInfo dir2 = new System.IO.DirectoryInfo(pathB);

// Take a snapshot of the file system.
IEnumerable<System.IO.FileInfo> list1 = dir1.GetFiles("*.*", System.IO.SearchOption.AllDirectories);
IEnumerable<System.IO.FileInfo> list2 = dir2.GetFiles("*.*", System.IO.SearchOption.AllDirectories);

foreach (var v in queryList1Only)
{
    listbox_2f.Items.Add("Create: "+ dir2.FullName+ "\\" +   v.Name);
}
如何解决这个问题,我可以将目录1中的foldernames添加到listbox


好的,我会给你一个例子,希望我有一个类似的目录:C:\Users\User\Desktop\Test1在这个目录中是子目录和文件现在我要展示一个列表,如何使这些目录的结构与C:\Users\Jonas\Desktop\Test2相同,所以当我在Test1中有一个文件夹Test12,在这些文件夹中有一个text123.txt文件,带有路径:C:\Users\User\Desktop\Test1\Test12\text123.txt我可以在列表框中添加谁,比如Create:C:\Users\User\Desktop\Test2\Test12\text123.txt当然,路径并不总是相同的

为了从路径中提取文件夹,换句话说,即目录名,您可以使用path.GetDirectoryName方法,如中所述:

另外,请参阅中给出的C用法示例:


关于这一点,

只需再看一眼FileInfo类。它还具有DirectoryName之类的方法/属性,您应该将这些方法/属性应用于dir1或列表1中的任何文件。你可能想要的是“名字”而不是全名。字符串文件名=@C:\TMP\log.txt;FileInfo FileInfo=新的FileInfofileName;如果fileInfo.Exists{return;}Console.WriteLine{0}的目录名为{1},文件名为fileInfo.directoryName;你到底有什么问题?给我们举个例子,你想做什么还不是很清楚。@MarcelN。好的,我会给你一个例子,希望我有一个类似于:C:\Users\User\Desktop\Test1的目录在这个目录中是子目录和文件现在我必须展示一个列表,如何使这些目录的结构与C:\Users\Jonas\Desktop\Test2的结构相同,所以当我在Test1中有一个文件夹Test12,在这些文件夹中有一个text123.txt文件,路径是:C:\Users\User\Desktop\Test1\Test12\text123.txt我可以在列表框中添加谁,比如Create:C:\Users\User\Desktop\Test2\Test12\text123.txt当然路径不是每次都一样
string filePath = @"C:\MyDir\MySubDir\myfile.ext";
string directoryName;
int i = 0;

while (filePath != null)
{
    directoryName = Path.GetDirectoryName(filePath);
    Console.WriteLine("GetDirectoryName('{0}') returns '{1}'", filePath, directoryName);
    filePath = directoryName;
    if (i == 1)
    {
        filePath = directoryName + @"\";  // this will preserve the previous path
    }
    i++;
}
/*
This code produces the following output:

GetDirectoryName('C:\MyDir\MySubDir\myfile.ext') returns 'C:\MyDir\MySubDir'
GetDirectoryName('C:\MyDir\MySubDir') returns 'C:\MyDir'
GetDirectoryName('C:\MyDir\') returns 'C:\MyDir'
GetDirectoryName('C:\MyDir') returns 'C:\'
GetDirectoryName('C:\') returns ''
*/