C# 获取从路径到某个点的所有父目录?

Dan*_*Dan 4 wpf c#-4.0

我在 WPF 中有一个列表框,它会自动获取框中列出的文件的全名,然后将这些文件添加到其特定文件夹下的 Zip 中。

例如:

C:\ProgramFiles\Folder1\Folder2\Folder3\Folder4\file.txt

我需要能够将它压缩到它的文件夹中,直到一个特定的文件夹,例如只有

\Folder2\Folder3\Folder4\file.txt

我怎么能这样做?我试过获取父目录,但它只返回文件所在的目录。

Cas*_*sen 5

    private static IEnumerable<DirectoryInfo> GetAllParentDirectories(DirectoryInfo directoryToScan)
    {
        Stack<DirectoryInfo> ret = new Stack<DirectoryInfo>();
        GetAllParentDirectories(directoryToScan, ref ret);
        return ret;
    }

    private static void GetAllParentDirectories(DirectoryInfo directoryToScan, ref Stack<DirectoryInfo> directories)
    {
        if (directoryToScan == null || directoryToScan.Name == directoryToScan.Root.Name) 
            return;

        directories.Push(directoryToScan);
        GetAllParentDirectories(directoryToScan.Parent, ref directories);
    }
Run Code Online (Sandbox Code Playgroud)