这个你没必要把文件大小这些都传送,你值需要传送文件名即可。在服务器端再根据文件名在系统里查找图标显示。以前写个这样的代码,只不过现在忘了。我大概是这么做的。
1. 先传磁盘号过去:c,d,e
2. 双击了磁盘号再去你的电脑查询相应的磁盘下的文件和文件夹。
3. 以此类推,每次在服务器请求了目录就去你电脑查询后返回

解决方案 »

  1.   

    这个你没必要把文件大小这些都传送,你值需要传送文件名即可。在服务器端再根据文件名在系统里查找图标显示。以前写个这样的代码,只不过现在忘了。我大概是这么做的。
    1. 先传磁盘号过去:c,d,e
    2. 双击了磁盘号再去你的电脑查询相应的磁盘下的文件和文件夹。
    3. 以此类推,每次在服务器请求了目录就去你电脑查询后返回
      

  2.   

    严格来说是发送文件列表吧,磁盘文件发过去那不是硬盘对考啊!文件目录拷贝有如下代码(这个是本机文件遍历拷贝)可以获得目录下所有文件名,至于创建树目录,建立一个树形控件后遍历添加节点就可以了!public static void CopyDirectory(string srcDir, string tgtDir, CopyType copytype)
            {
                DirectoryInfo source = new DirectoryInfo(srcDir);            DirectoryInfo target = new DirectoryInfo(tgtDir);            if (target.FullName.StartsWith(source.FullName, StringComparison.CurrentCultureIgnoreCase))
                {
                    throw new Exception("父目录不能拷贝到子目录!");
                }            if (!source.Exists)
                {
                    return;
                }            if (!target.Exists)
                {
                    target.Create();
                }            FileInfo[] files = source.GetFiles();            for (int i = 0; i < files.Length; i++)
                {
                    File.Copy(files[i].FullName, target.FullName + @"\" + files[i].Name, true);                if (copytype == CopyType.cutToo)
                    {
                        File.Delete(files[i].FullName);
                    }                Thread.Sleep(5);               // Application.DoEvents();
                }            DirectoryInfo[] dirs = source.GetDirectories();            for (int j = 0; j < dirs.Length; j++)
                {
                    CopyDirectory(dirs[j].FullName, target.FullName + @"\" + dirs[j].Name, copytype);
                }
            }