c# 里面怎么检测一个文件的行数

BallThink 2009-08-10 04:48:07
c# 里面怎么检测一个文件的行数
是文本文件哈
...全文
353 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
品铭工作室 2009-08-10
  • 打赏
  • 举报
回复
Stream s = File.OpenRead("C:\\*.*");
int count = 0 ;
while (true )
{
int c = s.ReadByte();
if (c == 13)
{
count += 1;
}

if (c == -1)
break;
}
if (count > 0) count++;
十八道胡同 2009-08-10
  • 打赏
  • 举报
回复
貌似所有的方法都要全部读一次。
dylike 2009-08-10
  • 打赏
  • 举报
回复
Msgbox My.Computer.FileSystem.ReadAllText("C:\temp\Mytest.txt",System.Text.Encoding.Dufault").Split(vbcrlf)
zzxap 2009-08-10
  • 打赏
  • 举报
回复
//如果文件不大,可以这么做,如果文件太大,占用内存太多,不好。
StreamReader sr=new StreamReader(@"D:\abc.txt",System.Text.Encoding.Default);
string strFile = sr.ReadToEnd();
string[] arraFile = strFile.Split('\n');//or '\r',仅限于读取Windows下的文件

int iLine = arraFile.Length;//文件行数
zzxap 2009-08-10
  • 打赏
  • 举报
回复
行的定义是:后跟换行符 ("\n") 的一个字符序列,或后面紧跟换行符 ("\r\n") 的回车。返回的字符串不包含终止回车或换行符。如

    string path = @"c:\temp\MyTest.txt";
    int lineCount = 0;
try
{

using (StreamReader sr = new StreamReader(path))
{
while (sr.Peek() >= 0)
{
sr.ReadLine();
lineCount ++;
}
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
BallThink 2009-08-10
  • 打赏
  • 举报
回复
我想要更高效的
有吗?
[Quote=引用 1 楼 jimh 的回复:]
C# code
......int line=0;while (true)
{if (FileStream.ReadLine()==null)break;
line++;
}//output line;
[/Quote]
jimh 2009-08-10
  • 打赏
  • 举报
回复

......
int line = 0;
while (true)
{
if (FileStream.ReadLine() == null) break;
line++;
}
//output line;
因为一直想找个办法来统计一下自己写的代码总行数,但是打开代码文件一个一个的加有点儿太二了.而且还不能忽略空行和注释.因此就写了这么程序用来统计真实的代码总行数. 如果各位有什么高见一定要给在下指教 本程序支持对sln(解决方案文件)、csproj(c#项目文件)、vbproj(vb.net项目文件)下所包含的源代码进行代码行数统计工作. 支持vs2003\2005\2008等版本所生成的解决方案文件或者项目文件 程序针对的语言为.net winform下的C#和VB.net,不支持J#.c++尚未测试 在计算代码行数时可以选择忽略空行、忽略注释或者忽略visual studio所自动生成的文件。这样可以得到自己亲手写的真实的代码行数。 同时,显示窗里可以看到该 解决方案文件或者项目文件下所包含的文件列表(有图表显示)界面还算漂亮 该树状列表可以支持多选,你可以只选择其中指定的几个文件或者项目进行代码行数统计,还是比较方便的。 v2.3.5版 1.支持C#与vb.net混合编程生成的解决方案文件,通过该解决方案文件可以统计解决方案下所有的代码文件的代码行数下载地址 2.增加C#与VB.NET的图标,可以更加清楚的识别不同语言写出的代码文件. 3.增加鼠标悬停提示,不必最大化程序或者或者拉伸标题栏就,只需悬停鼠标在指定的节点上就可显示该文件的完整名称. 4.增加"展开所有节点"选项框,可以让程序自动展开所有节点. 可以看我的博客,详细介绍发在这里了:http://www.cnblogs.com/tannaiyin/archive/2009/06/04/1496438.html
检测指定目录是否存在, 检测指定文件是否存在, 如果存在则返回true, 获取指定目录中所有文件列表,获取指定目录中所有子目录列表, 取指定目录及子目录中所有文件列表, 指定目录的绝对路径,检测指定目录是否为空, 检测指定目录中是否存在指定的文件, 若要搜索子目录请使用重载方法., 检测指定目录中是否存在指定的文件, 创建目录, 删除目录, 创建文件, 移动文件(剪贴--粘贴), 复制文件, 根据时间得到目录名 / 格式:yyyyMMdd 或者 HHmmssff, 根据时间得到文件名HHmmssff, 根据时间获取指定路径的 后缀名的 的所有文件, 复制文件夹,检查文件, 如果文件不存在则创建, 删除指定文件夹对应其他文件夹里的文件, 从文件的绝对路径中获取文件名( 包含扩展名 ), 复制文件参考方法,页面中引用, 创建一个目录, 创建一个文件, 并将字节流写入文件, 获取文本文件行数, 获取一个文件的长度, 单位为Byte, 获取文件大小并以B,KB,GB,TB, 获取指定目录中的子目录列表, 向文本文件写入内容, 向文本文件的尾部追加内容, 将现有文件的内容复制到新文件中, 将文件移动到指定目录, 从文件的绝对路径中获取文件名( 不包含扩展名 ), 从文件的绝对路径中获取扩展名 以上每一行为一个方法, 例子如下: #region 清空指定目录 /// /// 清空指定目录下所有文件及子目录,但该目录依然保存. /// /// 指定目录的绝对路径 public static void ClearDirectory(string directoryPath) { directoryPath = HttpContext.Current.Server.MapPath(directoryPath); if (IsExistDirectory(directoryPath)) { //删除目录中所有的文件 string[] fileNames = GetFileNames(directoryPath); for (int i = 0; i < fileNames.Length; i++) { DeleteFile(fileNames[i]); } //删除目录中所有的子目录 string[] directoryNames = GetDirectories(directoryPath); for (int i = 0; i < directoryNames.Length; i++) { DeleteDirectory(directoryNames[i]); } } } #endregion #region 清空文件内容 /// /// 清空文件内容 /// /// 文件的绝对路径 public static void ClearFile(string filePath) { //删除文件 File.Delete(filePath); //重新创建该文件 CreateFile(filePath); } #endregion #region 删除指定目录 /// /// 删除指定目录及其所有子目录 /// /// 指定

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧