如何判断一个文件是否为EXCEL?

wzp144650 2010-06-09 04:16:57
如题,别说判断扩展名啊。
...全文
692 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzp144650 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 gsdn00a 的回复:]

引用楼主 wzp144650 的回复:
如题,别说判断扩展名啊。


无聊,别说是因为蛋疼啊。
[/Quote]
随便弄个文件改下扩展名,你就认为是excel了?怎么这么能用这么肤浅的验证?
No4000 2010-06-10
  • 打赏
  • 举报
回复
要求真怪
wzp144650 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 thoughter 的回复:]

后一个名字写错了,是
WindowsCompoundBinaryFileFormatSpecification.pdf
[/Quote]
这个。。。。看得相当费劲。。
wzp144650 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wuyq11 的回复:]

通过文件头判断
http://topic.csdn.net/u/20100201/15/88f18491-3b94-46a5-9d9f-2b8995b7175c.html
[/Quote]
同样,貌似无法区分excel和word
wzp144650 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 net_lover 的回复:]

可参考
http://space.itpub.net/12639172/viewspace-536508
[/Quote]
这样无法区分excel和word
小黑哥gs 2010-06-09
  • 打赏
  • 举报
回复
阿捷很猛。。我是来学习的
GSDN00A 2010-06-09
  • 打赏
  • 举报
回复
如何判断一个文件是否是PDF文件? 别说判断扩展名啊。
thoughter 2010-06-09
  • 打赏
  • 举报
回复
后一个名字写错了,是
WindowsCompoundBinaryFileFormatSpecification.pdf
GSDN00A 2010-06-09
  • 打赏
  • 举报
回复
如何判断一个文件是否为WORD文件? 别说判断扩展名啊。

如何判断一个文件是否为文本文件? 别说判断扩展名啊。

如何判断一个文件是否为图形文件? 别说判断扩展名啊。

如何判断一个文件是可执行文件? 别说判断扩展名啊。

thoughter 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wzp144650 的回复:]

引用 5 楼 foxdave 的回复:

读取文件头信息做判定,看是否是Excel的头定义

我想最合理的方式是这样的,但是,不知如何读取,不是求代码,只是没接触过,没有头绪,直接read么
[/Quote]
微软公布了Office文件的格式了
参考那个即可
Excel97-2007BinaryFileFormat(xls)Specification.pdf
同时还需要参考Word97-2007BinaryFileFormat(doc)Specification.pdf
GSDN00A 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 wzp144650 的回复:]
如题,别说判断扩展名啊。
[/Quote]

无聊,别说是因为蛋疼啊。
hualoveqi 2010-06-09
  • 打赏
  • 举报
回复
读文件头部信息!
parellax 2010-06-09
  • 打赏
  • 举报
回复
直接判断後輟名不就行了麼?
看看是不是xls文件。
INGDI 2010-06-09
  • 打赏
  • 举报
回复
只能mark了
gohappy2008 2010-06-09
  • 打赏
  • 举报
回复
真正判断文件类型的关键函数
public static bool IsAllowedExtension2(FileUpload hifile)
{
if (hifile != null)
{
System.IO.FileStream fs = new System.IO.FileStream(hifile.PostedFile.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.BinaryReader r = new System.IO.BinaryReader(fs);
string fileclass = "";
byte buffer;
try
{
buffer = r.ReadByte();
fileclass = buffer.ToString();
buffer = r.ReadByte();
fileclass += buffer.ToString();

}
catch
{

}
r.Close();
fs.Close();
if (fileclass == "255216" || fileclass == "7173")//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
{
return true;
}
else
{
return false;
}
}
else { return false; }

}
mohugomohu 2010-06-09
  • 打赏
  • 举报
回复
为什么不用扩展名,方便又实在
孟子E章 2010-06-09
  • 打赏
  • 举报
回复
可参考
http://space.itpub.net/12639172/viewspace-536508
smthgdin_020 2010-06-09
  • 打赏
  • 举报
回复
1楼好办法。
wzp144650 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 foxdave 的回复:]

读取文件头信息做判定,看是否是Excel的头定义
[/Quote]
我想最合理的方式是这样的,但是,不知如何读取,不是求代码,只是没接触过,没有头绪,直接read么
加载更多回复(5)

110,534

社区成员

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

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

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