| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 153 人关注过本帖
标题:1.请问怎么用代码判断一个exe文件的字节数 2.为什么有些文件和其他文件打不 ...
只看楼主 加入收藏
a451410
Rank: 2
等 级:论坛游民
帖 子:78
专家分:98
注 册:2018-3-4
结帖率:78.26%
收藏
 问题点数:10 回复次数:4 
1.请问怎么用代码判断一个exe文件的字节数 2.为什么有些文件和其他文件打不开.
问题一,读取文件字节数和实际的对不上
首先我用了这种方法,但是得到的数值是错误的.一些几K的反而判断正确,一百多K的就不行.如下
我才用了这种方法:
fseek(file_1, 0, SEEK_END); // 将指针移动到文件末尾
long file_size = ftell(file_1); // 获取文件指针当前位置(文件大小)
结果得到的结果不对,但是一些几K的小文件读取是对的,很奇怪.如下图
图片附件: 游客没有浏览图片的权限,请 登录注册


问题二,有些文件打开失败,
同样路径下的exe文件,txt文件都能打开,但是其他的如nls和dll文件都打不开
用perror打印失败信息,显示找不到此文件,如下图标红处两个文件都打不开
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 打不开 exe 其他 文件 字节 
前天 02:55
a451410
Rank: 2
等 级:论坛游民
帖 子:78
专家分:98
注 册:2018-3-4
收藏
得分:0 
额!您猜怎么着! 我找到原因了,但是陷入了更大的疑惑!
以上两个问题产生的原因,是因为我操作的文件在C\windows\system32文件夹里.
换个文件夹后,所有的问题都没了.
所以,,,,我搞不明白
为什么会这样!!!!
啊啊啊,为什么,要疯了
前天 03:25
yiyanxiyin
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:235
专家分:1781
注 册:2023-6-29
收藏
得分:0 
程序代码:
#include <stdio.h>

int main ()
{
   FILE *fp;
   int len;
   char* filename= (char*)"C:\\Windows\\system32\\notepad.exe";    
   //char* filename= (char*)"C:\\Windows\\System32\\normnfkd.nls";
   fp = fopen(filename,"rb");
   if( fp == NULL ) 
   {
      perror ("打开文件错误");
      return(-1);
   }
   fseek(fp, 0, SEEK_END);

   len = ftell(fp);
   fclose(fp);

   printf("%s 的总大小 = %d 字节\n", filename,len);
   
   return(0);
}

上面的代码经测试没问题
前天 11:01
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1698
专家分:4310
注 册:2007-12-27
收藏
得分:0 
我要是妙妙屋的主人...
哦,错了。我要是windows的话,我也不让你乱搞system32
很久很久以前,有个叫共工的,一头撞坏了内核堆栈,搞得地球OnLine差点死机了,还好女娲进程给力。

从那以后,就有了权限这个东西,就是为了限制像你这样对操作系统缺乏敬畏的程序员的。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
前天 18:37
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43186
注 册:2014-5-20
收藏
得分:0 
是不是32位或64位的问题,64位系统有32位和64位的系统文件。
昨晚 19:39
快速回复:1.请问怎么用代码判断一个exe文件的字节数 2.为什么有些文件和其他文件 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029995 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved