CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

在C#中开发智能设备应用程序(PDA),在处理文件的读取时,我的应用程序部署到PDA上,,急救,在线等...

楼主fashionman(三石)2005-12-15 09:49:08 在 .NET技术 / C# 提问

在C#中开发智能设备应用程序(PDA),在处理文件的读取时,我的应用程序部署到PDA上不能读取文件,而把此应用程序在WINDOWS里运行就可以.  
  疑问:PDA上是不是不能用OpenText这种方法打开文件?  
  程序代码如下:StreamReader   s   =   File.OpenText("PD.ADB");  
  string   read   =   null;  
  while   ((read   =   s.ReadLine())   !=   null)  
  {  
  if   (read.Substring(read.Length-2,1)!="0")  
  {  
  listBox1.Items.Add(read);  
  }  
   
  }  
  s.Close();    
  请各位朋友看看..帮下忙解决一下! 问题点数:50、回复次数:17Top

1 楼lextm(LeLe)回复于 2005-12-15 13:18:32 得分 0

如果Compact   Framework里面StreamReader有这个方法的话,应该是可以读取的。我这边没有装MSDN,你自己查看一下。反正CF里面少了很多东西。Top

2 楼fashionman(三石)回复于 2005-12-19 16:05:11 得分 0

StreamReader,用file这样的方法读取我都试过啦..可是还是不行的.  
  Top

3 楼fashionman(三石)回复于 2005-12-19 16:09:09 得分 0

继续求救中.......HELP   METop

4 楼eastasp(东东)回复于 2005-12-19 20:46:36 得分 5

方法很多,给你一个,稍微修改一下   sPath:   文件名包括路径  
  try  
  {  
  FileStream   fs   =   new   FileStream(sPath,   FileMode.Open,   FileAccess.Read);  
  myFuns.memset(sLine,myFuns.nDataRowLength,0);  
   
  while   (fs.Read(sLine,0,myFuns.nDataRowLength)   >   0)  
  {  
  string   s   =   System.Text.Encoding.Default.GetString(sLine,0,myFuns.nDataRowLength);  
  if   (KeyCompare(s,sSearch))  
  {  
  fs.Close();  
  return   s;  
  }  
  myFuns.memset(sLine,myFuns.nDataRowLength,0);  
  }  
   
  fs.Close();  
  }  
  catch   (Exception   e)  
  {  
  ShowErrMessage(e.ToString()   +   "@"   +     "myFuns.SearchFile");  
  }  
  return   "";  
  }Top

5 楼eastasp(东东)回复于 2005-12-19 20:52:27 得分 0

StreamReader   sr   =   File.OpenText(writeFile);  
                                  string   s   =   sr.ReadLine();  
                                  sr.Close();  
                                  if   (s.Trim().Equals(""))   return;  
   
  哦,一定要记住要把   File.OpenText("PD.ADB")-->PD.ADB   路径名称写全.如果这样不可以,再看一下是否一定要后缀名称为pd.txt   .上面两种方法我都用过,pda是没有问题的    
  如果还有问题可以联系我east_asp@163.comTop

6 楼zeusvenus()回复于 2005-12-20 00:08:16 得分 5

可能是.NET   FX版本不同引起的运行差异。查一下看.NET   FRAMEWORK精简版支持不支持你的写法。Top

7 楼fashionman(三石)回复于 2005-12-20 10:49:59 得分 0

嗯...我再看看...Top

8 楼lander9999(★★★★★)回复于 2005-12-20 18:03:49 得分 20

PDA上缺省目录是"\",和PC上有点不一样。Top

9 楼fashionman(三石)回复于 2005-12-21 13:41:32 得分 0

楼上的   lander9999.请问那这个怎么处理呢.Top

10 楼userxk(勇敢的心)回复于 2005-12-21 14:07:03 得分 0

给你一个实际使用中的代码片段:  
  string   s   =   "";  
  string   temp1   =   "";  
  string   temp2   =   "";  
  string   temp3   =   "";  
  int   k=0;  
  using   (StreamReader   sr   =   File.OpenText(FILE_NAME))    
  {  
  while   ((s   =   sr.ReadLine())   !=   null)    
  {  
  switch(k)  
  {  
  case   0:  
  temp1   =   s;  
  break;  
  case   1:  
  temp2   =   s;  
  break;  
  case   2:  
  temp3   =   s;  
  break;  
  }  
   
  k++;  
  }  
   
  }Top

11 楼fashionman(三石)回复于 2005-12-22 09:51:38 得分 0

现在的问题是:  
  "未处理的System.IO.FileNotFoundExecption"类型的异常出现在mscorlib.dll   中。  
   
  其他信息:   FileNotFoundException  
   
  我也是试了好多方法来解决,结果还是无解!Top

12 楼userxk(勇敢的心)回复于 2005-12-23 08:56:37 得分 5

大哥,你这是读取的文件不存在,而你又没处理这个异常。Top

13 楼fashionman(三石)回复于 2005-12-23 09:18:05 得分 0

我知道是这个问题,不过就是没法取得文件.我把这个文件放在DEBUG目录下运行,可是还是不行.  
  在文件读取时,我用的是文件的相对路径.....Top

14 楼lander9999(★★★★★)回复于 2005-12-23 12:04:34 得分 0

strFullAppName   =   Assembly.GetExecutingAssembly().GetName().CodeBase.Replace("file:///","");  
  strFullAppPath   =   Path.GetDirectoryName(strFullAppName);  
  strFullFileName   =   Path.Combine(strFullAppPath,   "data.xml");  
   
  使用绝对路径就可以了.Top

15 楼fashionman(三石)回复于 2005-12-23 15:24:13 得分 0

用这种绝对路径,PDA中也能识别吗?  
  这方法能否再细说一下,最近我是做程序一点感觉都没有啦...  
  谢谢!Top

16 楼lander9999(★★★★★)回复于 2005-12-23 18:40:30 得分 5

贴个代码,参考一下:  
              string   strFullAppName   =   Assembly.GetExecutingAssembly().GetName().CodeBase.Replace("file:///","");  
              string   strFullAppPath   =   Path.GetDirectoryName(strFullAppName);  
              string   FileName   =   Path.Combine(strFullAppPath,   "test.txt");    
              string   TestString   =   "这是一个测试This   is   a   Test";  
              System.Text.Encoding   Encoding   =   System.Text.Encoding.GetEncoding("gb2312");  
              FileStream   sw   =   File.OpenWrite(FileName);  
              sw.Write(Encoding.GetBytes(TestString),0,Encoding.GetByteCount(TestString));  
              sw.Close();  
   
  上面的代码在执行文件路径下创建了一个"test.txt"文件,文件内容是"这是一个测试This   is   a   Test"Top

17 楼eastasp(东东)回复于 2005-12-24 01:00:51 得分 10

//完整得函数:   sFileName   写文件名就可以了,取可执行程序得路径  
  //--show   message   box    
  public   static   string   GetFullFilePath(string   sFileName)  
  {  
  if   (sFileName.Equals(""))   return   "";  
  string   sFullAppFileName   =   Assembly.GetExecutingAssembly().GetName().CodeBase;  
  string   sAppPath   =   Path.GetDirectoryName(sFullAppFileName);  
  string   sRetFileName         =   Path.Combine(sAppPath,sFileName);  
  return   sRetFileName;  
  }  
  如果你把文件放在可执行程序根目录下   操作如下:   myFuns   是我得类名你可以不管他  
  myFuns.GetFullFilePath(myFuns.DATA_FILE_NAME)Top

相关问题

  • 在C#中开发智能设备应用程序(PDA),在处理文件的读取时,我的应用程序部署到PDA上,,急救,在线等...
  • ----急救----C#窗体应用程序中的三个错误 该如何修改!
  • 关于C/S应用程序的问题?
  • c#编桌面应用程序如何?
  • 用C++Builder开发DirectX应用程序
  • C#的应用程序的运行
  • 用C#开发应用程序
  • c# windows应用程序打包
  • 打开C#应用程序的问题
  • 请问用C#做windows 应用程序好 还是 做web应用程序好?

关键词

  • c#
  • mp3
  • 应用程序
  • pda
  • 文件
  • 代码
  • 读取
  • myfuns
  • ndatarowlength
  • strfullapppath

得分解答快速导航

  • 帖主:fashionman
  • eastasp
  • zeusvenus
  • lander9999
  • userxk
  • lander9999
  • eastasp

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo