using System;
using System.Collections.Generic;
using System.Text;
namespace Attendance.Common
{
/// <summary>
/// 用户ID| 日期时间|设备ID|考勤状态|验证模式|工号
/// </summary>
public struct AttLogDataStruct
{
public int NumInDevice;
public DateTime LogDateTime;
public string DeviceId;
/// <summary>
/// 0 上班 1 下班 2 外出 3 外出返回 4.加班签到 5 加班签退
/// </summary>
public string InOutMode;
/// <summary>
/// 1为指纹,0为密码
/// </summary>
public string VerifyMode;
}
public class USB_AttLog
{
public static List<TemplateDataStruct> ReadFromUSB()
{
List<TemplateDataStruct> rtn = null;
int size = 608;
//Find usb driver
string filename = string.Empty;
foreach (System.IO.DriveInfo di in System.IO.DriveInfo.GetDrives())
{
if (di.DriveType == DriveType.Removable && di.IsReady)
{
if (System.IO.File.Exists(di.RootDirectory.FullName + "user.dat"))
{
filename = di.RootDirectory.FullName + "template.dat";
break;
}
}
}
if (filename.Length > 0)
{
rtn = new List<TemplateDataStruct>();
using (FileStream fs = File.Open(filename, FileMode.Open))
{
System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
byte[] buf = new byte[fs.Length];
br.Read(buf, 0, (int)fs.Length);
for (int i = 0; i < buf.Length; i = (i + 1) * size)
{
IntPtr ptr = Marshal.AllocHGlobal(size);
Marshal.Copy(buf, i, ptr, size);
TemplateDataStruct ud = (TemplateDataStruct)Marshal.PtrToStructure(ptr, typeof(TemplateDataStruct));
rtn.Add(ud);
}
br.Close();
}
}
return rtn;
}
}
}