---
title: "lista filer"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/167608-lista-filer"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Vinnaren"
published: "2007-12-27T21:10:38.000Z"
updated: "2007-12-28T12:07:25.000Z"
replies: 4
views: 577
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/167608-lista-filer"
---

# lista filer

## #1 — Vinnaren, 2007-12-27T21:10Z

försöker bygga en filhanterare, men jag vet inte redigt hur jag ska få ut filerna i GridView:n.

```
    <asp:TreeView 
        ID="tvMap" 
        runat="server">
    </asp:TreeView>

    <asp:GridView 
        ID="gvFile" 
        runat="server">
        <Columns>
        
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:CheckBox ID="chkChecked" runat="server" />
                </ItemTemplate>
            </asp:TemplateField>  
            
            <asp:TemplateField HeaderText="Filnamn">
                <ItemTemplate>
                    <asp:LinkButton 
                    ID="lbtnFile" 
                    runat="server" 
                    Text='<%# Eval("filename") %>' />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
```

 

```
private void BindTree()
    {
        // tömmer listan
        tvMap.Nodes.Clear();

        string rootFolder = BaseDir;
        TreeNode rootNode = new TreeNode();
        rootNode.Text = BaseDir;
        rootNode.Expanded = true;
        rootNode.Value = rootFolder.Replace("\\", "~").Replace(" ", "|");
        tvMap.Nodes.Add(rootNode);
        tvMap.ShowLines = true;

        BuildTreeDir(rootFolder, rootNode);
    }

    // bygger upp menyn med mappar o mappnamn
    private void BuildTreeDir(string dirPath, TreeNode parentNode)
    {
        string[] subDir = Directory.GetDirectories(dirPath);

        // loopar ut alla mappar
        foreach (string directory in subDir)
        {
            string[] parts = directory.Split('\\');
            string name = parts[parts.Length - 1];
            TreeNode node = new TreeNode();
            node.Text = name;
            node.ImageUrl = "~/bilder/filemanager/folder.gif";
            node.Expanded = false;

            // lägger till nod
            parentNode.ChildNodes.Add(node);

            // bygger upp undermappar
            BuildSubDir(directory, node);
        }
    }

    // bygger upp undermenyn med mappar o mappnamn
    private void BuildSubDir(string dirPath, TreeNode parentNode)
    {
        string[] subDir = Directory.GetDirectories(dirPath);

        // loppar ut alla mappar
        foreach (string directory in subDir)
        {
            string[] parts = directory.Split('\\');
            string name = parts[parts.Length - 1];
            TreeNode node = new TreeNode();
            node.Text = name;
            node.ImageUrl = "~/bilder/filemanager/folder.gif";
            parentNode.ChildNodes.Add(node);
            node.Expanded = false;

            // bygger upp undermappar
            BuildSubDir(directory, node);
        }

    }

    private void BindGrid()
    {
        DirectoryInfo dirInfo = new DirectoryInfo(GetFolderPath());
        FileInfo[] info = dirInfo.GetFiles();

        if (info.Length != 0)
        {
            foreach (FileInfo f in info)
            {
            }
        }

    }

    protected string GetFolderPath()
    {
        string orginalPath = tvMap.SelectedNode.ValuePath;
        string newPath = orginalPath.Replace("~", "\\").Replace("/&nbsp", "\\");
        return newPath;
    }
```

 

Det är metoden BindGrid() som ska visa alla filer i GridView:n.

Hur gör man detta??

Tacksam för all hjälp  :stud

Permalänk: https://www.webforum.nu/p/167608

## #2 — inspiro, 2007-12-28T08:14Z

GetFiles() returnerar väl en lista så du borde kunna göra så här bara (otestat):

gvFile.DataSource = dirInfo.GetFiles();
gvFile.DataBind();

Permalänk: https://www.webforum.nu/p/2063451

## #3 — Vinnaren, 2007-12-28T10:41Z

tack, har problem med att få ut filerna för den mappen man klickar på

```
    protected string GetFolderPath()
    {
        string orginalPath = tvMap.SelectedNode.ValuePath;
        string newPath = orginalPath.Replace("~", "\\").Replace("/&nbsp", "\\");
        return newPath;
    }
```

 

när den har returneras kommer felmeddelandet:
System.ArgumentException: Ogiltiga tecken i sökvägen.
på:
DirectoryInfo dirInfo = new DirectoryInfo(GetFolderPath());

Sökvägen där är:
"C:\\\\Documents\|and\|Settings\\\\Skrivbord\\\\filhanterare\\\\upload\\\\"

Hur får man en korrekt sökväg?

Permalänk: https://www.webforum.nu/p/2063487

## #4 — Vinnaren, 2007-12-28T11:39Z

kommenterade bort:

```
rootNode.Value = rootFolder.Replace("\\", "~").Replace(" ", "|");
```

 

i private void BindTree() så nu fungerar den   :o 

vet inte om det var så smart men den fungerar iaf   :e

Permalänk: https://www.webforum.nu/p/2063493

## #5 — Vinnaren, 2007-12-28T12:07Z

hur gör man för att räkna om b till kb i en bunden kolumn?
Har koden:

```
           <asp:BoundField 
               DataField="Length" 
               HeaderText="Storlek (kb)" />
```

 

Går det? i så fall hur??

Tacksam för all hjälp   :stud

Permalänk: https://www.webforum.nu/p/2063495

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/167608-lista-filer
