1.
两条线程,一条用于分析文件,一条用于做进度条
如果是检查一个目下文件大小可用
FileInfo[] fio=File.GetFiles(path);
long filelength=0.0;
foreach(FileInfo fi in fio)
{
  filelength+=fi.Legth;
}
开启两个线程,参考http://my.hevnet.cn/iyond/posts/1942.aspx
2.
3.Application.StartupPath,AppDomain.CurrentDomain.BaseDirectory
Environment.CurrentDirectory

解决方案 »

  1.   

    Environment.CurrentDirectory
    获取应用程序的当前工作目录。
    System.IO.Directory.GetCurrentDirectory()
    AppDomain.CurrentDomain.BaseDirectory
    这两个只能在WindowForm中使用;
    Application.StartupPath
    Application.ExecutablePath
    --获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
    Environment.CurrentDirectory  
    --获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
    Application.ExecutablePath
      

  2.   

    通过 Microsoft Visual Studio .NET 2003 引导程序插件,您可以轻而易举地创建安装程序,将 .NET Framework 1.1 和/或 MDAC 2.7 随您的应用程序一起重新分发。 为使 .NET Framework 应用程序可以在某台特定的计算机上运行,该计算机上必须安装有 .NET Framework。 任何使用 ADO.NET 来连接数据库的 .NET Framework 应用程序都要求使用 MDAC 2.7。 许多计算机都已经安装了这些组件,但是,为了确保某个应用程序能够运行,应随该应用程序重新分发这些组件。 Visual Studio .NET 2003 引导程序与 Visual Studio .NET 安装程序和部署项目集成在一起。 基于这一点,您可以只创建一个安装程序,用它来自动检测目标计算机上是否存在那些系统必备软件,并根据需要进行安装。 如果在安装任何组件的过程中要求计算机重新启动,安装程序将会自动继续后续的安装操作。 因此,应用程序的用户只需要运行一个安装程序即可安装系统必备软件和相应的应用程序。具体步骤:
    http://community.csdn.net/Expert/topic/3132/3132532.xml?temp=.3705255如果包含数据库,可以看
    http://www.cnblogs.com/wangsaokui/articles/9769.aspx
      

  3.   

    Wrox好象有一本有关C#中线程的书吧
    楼主可以看看(清华出版的)