我需要在richtxtbox中读入一个固定的txt文件内容,现在只能把txt放在debug下面,如果exe文件移动了就不行了
我想在项目中直接加入txt后,有什么办法不需要附带txt在exe文件的目录下了?????

解决方案 »

  1.   

    你给一个输入txt文件所在绝对路径的输入框让用户输入,或者使用OpenFileDialog类来让用户选择文件的所在位置。
      

  2.   

    字符串好长啊....我在项目中添加了txt,但不知道怎么引用它,我是要交作业,所以不能用绝对路径啊,,,还有3楼说的什么,不懂
      

  3.   

    你在项目里怎么添加txt的啊?展开项目的Properties目录,双击Resources.resx,打开资源浏览窗口,添加你想要的文件,然后使用Properties.Resources类的属性来访问你添加的资源。
      

  4.   

    Properties目录是项目自带的,不用你添加。Resources.resx文件是个全局资源文件,创建项目时就会自动产生的,也不用你添加。Properties.Resources是个静态类,不用实例化直接可以使用的。
      

  5.   

    我添加到资源文件中了:这是我引用的代码 richTextBoxCode.Text = File.ReadAllText("Move.txt", System.Text.Encoding.Default);要怎么引用啊
      

  6.   

    如果你添加的就是那个Move.txt的话,这样就应该可以了:richTextBoxCode.Text = Properties.Resources.Move;
    如果Move名字被占用,估计系统会取别的名字,你看下提示就知道了。
      

  7.   

    错误 1 当前上下文中不存在名称“Properties” D:\学习\信息系统安全\Encrypt\Encrypt\FormMove.cs 432 36 Encrypt
      

  8.   

    绝对路径用@".\filename.txt"就可以
    读的话用流应该就OK
      

  9.   

    不可能的,难道你都没有那个Properties目录吗?你重新创建一个新的项目看下,那个Properties就在最上面第一个,图标有点特殊,不是文件夹的图标,那个是项目的属性目录,绝对存在的。查看项目属性的时候也要用到那个目录里存放的信息的。
      

  10.   

    除非你的类内部声明的命名空间(FormMove.cs内部的namespace部分)与你的项目名不同Properties采用的是你的项目名同名的命名空间,因为同名,所以我省略了命名空间的前缀。
      

  11.   

    什么都不需要引用,你要是还找不到原因,打开Resources.Designer.cs开下里面的namespace关键字后面写的是什么,应该是类似WindowsFormsApplication1.Properties那样的一串较长的字符串,你写完整了就肯定可以。
    比如我的项目叫WindowsFormsApplication1,那么就这样:
    richTextBoxCode.Text = WindowsFormsApplication1.Properties.Resources.Move;
      

  12.   

    不过谢谢你拉qldsrx,好像相对引用也得把那个txt和exe都拷过去,没有解决我的问题呀
      

  13.   

      用读取流啊!FileStream fs = File.OpenRead(textBox1.Text);
                byte[] my = new byte[256];
                UTF8Encoding Date = new UTF8Encoding(true);
                while (fs.Read(my, 0, my.Length) > 0)
                {
                    textBox2.Text = Date.GetString(my);
                }
                fs.Close();
    应该可以吧1!
      

  14.   

    你自己都说了相对路径也会改变,那怎么可以使用相对路径啊。别人一般程序都是一个目录下保持一个完整的结构使用的,就算放桌面也是发送一个快捷方式,目录结构不变,不会单独复制一个exe文件到桌面运行,你的程序小,复制一个exe文件到桌面就可以运行了,不过却会破坏目录结构(如果需要引用外部文件的话)。
      

  15.   

    我是要交作业,所以只能像你说的那么做了,不过msdn里面怎么没有properties这个类呀
      

  16.   

    Properties是命名空间的一部分,后面的Resources才是类,没找到Properties很正常。
    那个命名空间是由“项目名.Properties”组成的,使用的时候如果项目名一致,前面一半还可以省略掉。
      

  17.   

           public void ExportToTxt2(DataSet ds, string TXTPATH) 
            {
                  string TXTPOSTFIX = ".txt"; 
            if (ds.Tables.Count != 0) 
            {
                string ProjectID = "garbage_list";
                //创建一个.txt文件,文件名用项目名 
                FileInfo file = new FileInfo("" + TXTPATH + ProjectID + TXTPOSTFIX + ""); 
                StreamWriter textFile = null; 
                try 
                { 
                    textFile = file.CreateText(); 
                } 
                catch 
                { 
                    System.Web.HttpContext.Current.Response.Write("系统找不到指定目录下的文件: " + TXTPATH + ProjectID + TXTPOSTFIX + " "); 
                    return; 
                } 
                //把Dataset中的数据写入.txt文件中 
                for (int totaltable = 0; totaltable < ds.Tables.Count; totaltable++) 
                { 
                    //统计dataset中当前表的行数 
                    int row = ds.Tables[totaltable].Rows.Count; 
                    //统计dataset中当前表的列数 
                    int column = ds.Tables[totaltable].Columns.Count; 
                    //用于统计当前表中每列记录中字符数最长的字符串的长度之和 
                    int totalLength = 0; 
                    //把dataset中当前表的数据写入.txt文件中 
                    for (int i = 0; i < row; i++) 
                    { 
                        for (int j = 0; j < column; j++) 
                        { 
                            textFile.Write(ds.Tables[totaltable].Rows[i][j].ToString()); 
                        } 
                        textFile.WriteLine(); 
                    } 
                    textFile.WriteLine();             } 
                //关闭当前的StreamWriter流 
                textFile.Close(); 
               // System.Web.HttpContext.Current.Response.Write("数据文件已保存到"); 
            } 
            else 
            { 
               // System.Web.HttpContext.Current.Response.Write("No Data"); 
            } 
        }