文件信息查看器

原创 2007年10月14日 10:23:00
# -*- coding: cp936 -*-
'''文件信息查看器,可以显示文件的路径,大小,创建日期,最后修改日期,最后访问日期'''
gCurrentDir 
= ''
from Tkinter import *
import os
root 
= Tk()

Label(root,text 
= 'File operation demo').grid(row = 0,column = 0,columnspan = 3)
Label(root,text 
= 'Directories').grid(row = 1,column = 0,stick = W)
Label(root,text 
= 'File').grid(row = 1,column = 1,stick = W)
Label(root,text 
= 'File Properities').grid(row = 1,column = 2,stick = W)

# 得到当前目录位置
gCurrentDir = os.getcwd()

def refreshDirs(lbDirs_,curDir):
    
'''更新目录列表
    1.删除所有记录
    2.插入当前目录列表
    3.选中第一项
    
'''
    lbDirs_.delete(0,END)
    lbDirs_.insert(0,
'.')
    lbDirs_.insert(
1,'..')
    
for item in (os.listdir(curDir)):
        
if os.path.isdir(curDir +(os.sep) + item):
            lbDirs_.insert(END,item)
    lbDirs_.selection_set(0)
def refreshFiles(lbFiles_,curDir):
    
'''更新文件列表
    1.删除所有记录
    2.插入当前目录的文件列表
    3.选中第一项
    
'''
    lbFiles_.delete(0,END)
    
for item in (os.listdir(curDir)):
        
if os.path.isfile(curDir +(os.sep) + item):
            lbFiles_.insert(END,item)
    lbFiles_.selection_set(0)
    
        
def changeDir(event):
    
'''在目录ListBux双击时,
    1.改变当前路径,如果是'.'则不予处理,如果是'..',去掉最后的项,
    2.同时更新文件列表
    3.更新文件显示属性
'''
    
global gCurrentDir
    sel 
= lbDirs.get(lbDirs.curselection())
    
if sel == '.' :
        
return
    
elif sel == '..':
        gCurrentDir 
= os.path.split(gCurrentDir)[0]
        
print gCurrentDir
    
else:
        gCurrentDir 
= gCurrentDir + os.sep + sel
        
print gCurrentDir
    os.chdir(gCurrentDir)
    refreshDirs(lbDirs,gCurrentDir)
    refreshFiles(lbFiles,gCurrentDir)
    showProperties(event)

# 创建目录列表
lbDirs = Listbox(root)
refreshDirs(lbDirs,gCurrentDir)
lbDirs.grid(row 
= 2,column = 0,stick = W)
lbDirs.bind(
'<Double-Button-1>',changeDir)

def showProperties(event):
    
'''用于显示文件的属性
    1.文件路径
    2.文件大小
    3.文件创建日期
    4.文件修改日期
    5.文件访问日期
'''
    
import time
    
try:
        
# 注意考虑当前目录没有文件的情况,这里使用异常处理,信息显示为空
        fn = gCurrentDir + os.sep + lbFiles.get(lbFiles.curselection())
        
print 'fn = ',fn
        state 
= os.stat(fn)
        msg 
= ''
        msg 
= 'Location: ' + fn  + ' ' 
        msg 
= msg + 'size:' + ('%d' % state[-4])   + ' '
        t 
= time.localtime(state[-1])
        msg 
= msg + 'create:' + 
              (
'%d/%d/%d %d:%d:%d' % 
              (t[0],t[
1],t[2],t[3],t[4],t[5])) + ' '
        t 
= time.localtime(state[-2])
        msg 
= msg + 'modify:' + 
              (
'%d/%d/%d %d:%d:%d' % 
              (t[0],t[
1],t[2],t[3],t[4],t[5])) + ' '
        t 
= time.localtime(state[-3])
        msg 
= msg + 'access:' + 
              (
'%d/%d/%d %d:%d:%d' %    
              (t[0],t[
1],t[2],t[3],t[4],t[5])) + ' '# os.linesep
        
        lblProperities[
'text'= msg
    
except:
        msg 
= ''
        lblProperities[
'text'= msg
        
# 创建文件列表
lbFiles = Listbox(root)
refreshFiles(lbFiles,gCurrentDir)
lbFiles.grid(row 
= 2,column = 1,stick = W)
lbFiles.bind(
'<Double-Button-1>',showProperties)

# 创建属性标签
lblProperities = Message(root)
showProperties(0)
lblProperities.grid(row 
= 2,column = 2)
root.mainloop()
 

文件查看器(java 原码)

package com.liutao.fileInfo; import java.awt.*; import java.io.*; import javax.swing.*; import...
  • it_liutao
  • it_liutao
  • 2013年03月02日 15:53
  • 2095

cutePE:自己写的PE文件结构查看器

(代码略搓,大神请飘走~~~)cutePE基于Qt5.5开发,可以查看PE文件结构。开发过程如下:0x01 读取文件要【通过signature判断是否为PE文件】其实是件简单的事,but,首先得需要读...
  • spenghui
  • spenghui
  • 2017年06月02日 15:54
  • 630

vs中丢失帮助查看器(HelpViewer)如何处理

参考网上的一个教程,在此做一下记录!   1. 在ios镜像安装文件中找到 packages\Help 路径。   2. 打开控制台命令,cd到这个路径下   3. 在控制台中键入以下命令进行安装 ...
  • lishuhuakai
  • lishuhuakai
  • 2015年01月19日 23:36
  • 5004

WMI技术介绍和应用——查询文件夹信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。         本节主要介绍Win32_Directo...
  • breaksoftware
  • breaksoftware
  • 2013年01月11日 20:08
  • 4918

WMI技术介绍和应用——查询桌面信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。         在Windows操作系统中,存在很多Windows Station。而每一个Window...
  • breaksoftware
  • breaksoftware
  • 2013年01月08日 19:53
  • 3626

android打开、查看文件

简单处理原理: public void openFile0(File file){ String fileName = file.getAbsolutePath(); if(fileName...
  • cy524563
  • cy524563
  • 2014年11月29日 23:52
  • 2924

32位PE文件信息查看器(WIN32控制台)

最近重新撸了一遍PE文件的文件格式,这个程序算是复习的产物吧。说明与警告: 1.只适用于32位PE文件,可以读取符合标准的32位PE文件的DOS头、NT头、节区头、导入表、导出表信息,想要其他功能请...
  • u013613980
  • u013613980
  • 2016年05月14日 09:00
  • 3050

iOS开发之导出ipa文件以及查看内容

在iOS系统中,IPA文件指的是iphone Application,IPA文件实质上是一个zip压缩包,我们在iOS系统上使用的软件,最初下载的都是IPA文件。打个比方,它就像windows系统中下...
  • nineteen_
  • nineteen_
  • 2015年10月04日 10:46
  • 6419

C#调用电脑的默认图片浏览器软件打开图片

private void 调用Window显示ToolStripMenuItem_Click(object sender, EventArgs e) { str...
  • u010771437
  • u010771437
  • 2014年10月16日 17:20
  • 3507

使用SQL BAK Reader 小工具查看SQL Server备份文件内容(不需要打开SQL Server)

使用SQL BAK Reader 小工具查看SQL Server备份文件内容(不需要打开SQL Server) 有时候我们没有SQL Server或者没有权限连接到SQL...
  • haiross
  • haiross
  • 2014年05月12日 13:44
  • 8778
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件信息查看器
举报原因:
原因补充:

(最多只允许输入30个字)