是否有可用的组件列表FileUpload,它显示服务器上的文件,而不是客户端?
我基本上是在寻找一个干净的对话框来选择服务器端文件,比如FileUpload中使用的文件。
答案 0 :(得分:1)
不。没有。也就是说,您可以使用列表框,并将文件加载到其中。
public sub file_DatabindListbox(directoryPath as string)
for each fName as string in io.directory(directorypath).getfilenames()
dim li as new listitem
li.text = io.path.getfilename(fName)
li.value = fName
myFileListbox.Items.Add(li)
next
end sub
答案 1 :(得分:0)
您无法以与使用FileUpload组件相同的方式浏览服务器的文件夹,因为......所有文件都位于服务器上,您所指的“干净对话框”是客户端。您可以编写自己的代码来列出下拉列表中的文件。但是如果你的文件位于多个文件夹中并且你想保留一些结构,那么TreeView可能会做这样的事情:
protected void Page_Load(object sender, EventArgs e)
{
SetChildFolders(trvFiles.Nodes, @"C:\MyFolder");
}
private void SetChildFolders(TreeNodeCollection nodes, string path)
{
foreach (string directory in Directory.GetDirectories(path))
{
DirectoryInfo dirInfo = new DirectoryInfo(directory);
TreeNode node = new TreeNode(dirInfo.Name, dirInfo.FullName);
SetChildFolders(node.ChildNodes, dirInfo.FullName);
SetChildFiles(node.ChildNodes, dirInfo.FullName);
trvFiles.Nodes.Add(node);
}
}
private void SetChildFiles(TreeNodeCollection nodes, string path)
{
foreach (string file in Directory.GetFiles(path))
{
FileInfo fileInfo = new FileInfo(file);
nodes.Add(new TreeNode(fileInfo.Name, fileInfo.FullName));
}
}
你可以通过很多方式对树视图进行风格化。