0

ファイルを含むディレクトリを表示するために Asp.net ツリービューを使用しています。ユーザーがツリービューノードをクリックすると、ファイルパスを表示したいと思います。FullName プロパティを使用してパスを取得しています。私が抱えている問題は、ツリービューがファイルではなくディレクトリのフルパスのみを表示することです!

これが私のコードです

private static TreeNode CreateDirectoryNode(DirectoryInfo directoryInfo)
{
    TreeNode directoryNode = new TreeNode(directoryInfo.Name);

    foreach (DirectoryInfo directory in directoryInfo.GetDirectories())
    {
        if (!directory.Attributes.ToString().Contains("Hidden"))
        {
            directoryNode.ChildNodes.Add(CreateDirectoryNode(directory));
            directoryNode.Value = directoryInfo.FullName; // Here I'm passing the directory path
        }
    }

    foreach (FileInfo file in directoryInfo.GetFiles())
    {
        if (File.GetAttributes(file.FullName).ToString().IndexOf("Hidden") == -1)
        {
            directoryNode.ChildNodes.Add(new TreeNode(file.Name));
            directoryNode.Value = file.FullName; // Here I'm passing the file path
        }
    }

    return directoryNode;
}

更新 何らかの理由で、ファイルではなくディレクトリの絶対パスがtreeNode 値を示していません!

4

2 に答える 2

1

間違ったノードに値を設定しました。

変化する

  directoryNode.ChildNodes.Add(new TreeNode(file.Name));  
  directoryNode.Value = file.FullName; // Here I'm passing the file path  

  TreeNode fileNode = new TreeNode(file.Name, file.FullName);
  directoryNode.ChildNodes.Add(fileNode);

これにより、ファイル ノードの値がフル パスに設定されます。

于 2012-10-22T17:25:42.803 に答える
0

Valueプロパティが表示されない

変化する

directoryNode.ChildNodes.Add(new TreeNode(file.Name));

directoryNode.ChildNodes.Add(new TreeNode(file.FullName));
于 2012-10-22T17:04:19.470 に答える