自同步 局域网文件同步

自同步是一款小巧实用的局域网文件同步工具,具有使用方便、同步快速的特点,在局域网内,它可以让你在任意两台电脑(手机)的两个目录之间建立同步,你在一个目录中添加/修改的文件,在另一个目录中也会相应的添加/修改。

基本介绍

1、 无需再用 U盘、QQ、邮件传输文件;
2、 windows 用户可以抛弃文件夹共享、winScp;
3、 linux 用户可以抛弃scp、samba、rsync;
4、 mac用户不用设置“文件共享”;
5、 Android 和 IOS的图片能便捷同步(备份)到你的电脑上了。

使用方法

下面例子是教你如何在两台 windows 电脑(zisync-window1与 zisync-window2)之间建立同步,如何让 zisync-window1桌面上的目录 A与 zisync-window2桌面上的目录B建立同步关系。
Step1:启动”自同步”程序,设置同步口令(token),自同步会自动发现局域网内有相同同步口令的设备,如图:

输入您的同步口令(我们在此输入同步口令 zisync),点击完成,发现另外一台同步口令为zisync的设备(zisync-window2),其中 zisync-window1为当前设备,如图:

Step 2:建立设备间的互相信任, 鼠标右键点击设备 zisync-window2,点击【添加信任】,向 zisync-window2 发送请求信任的请求,如图,

然后在 zisync-window2 设备上同意信任该设备,完成后,可以看到与 zisync-window2已经建立了信任,如图:

Step 3:建立同步目录。点击选项页上的【同步目录】 ,可以看到当前没有已建立的同步关系,所以我们点击左下角的【添加】按钮来建立同步目录,如图:

选择【使用已有的同步目录】,然后点击下一步,会出现让您选择其它设备的同步目录界面,如图:

当前在zisync-window2上没有看到已存在的同步目录,所以我们点击【创建同步目录】,选择“桌面/B”来为 zisync-window2 创建新的同步目录,点击完成后,我们可以看到zisync-window2多了一个同步目录的信息,如图:

注:这里也可以为本机创建同步目录,这样不仅可以在两台设备的目录之间建立同步关系,也可以在一台设备的目录之间建立同步关系。
点击【下一步】去选择本地的目录,如图:

选择与建立同步关系的本地目录,在该教程中,我们选择“G:/zisync” ,点击【完成】后,这样我们就完成了在两个设备目录之间建立同步关系的操作。
Step 4:在自同步主界面上【同步目录】可以看到你刚刚建立同步关系,如图:

 

下载地址:

官网下载

Send Anywhere 跨平台多设备文件共享

Send Anywhere,来自韩国的免费短期文件互传、分享服务,跨平台多设备文件共享应用,是一个支持多设备间进行文件即时传送的手机工具。昨天刚获得乐天100万美元投资。目前有iOS/Android客户端,Chrome 扩展和网页版。Send Anywhere 并不存储文件到服务器上,因为它使用P2P传输,不用担心安全性。

Send Anywhere:,支持iOS、Android、Chrome、Windows等系统,让你随时随地传送文件而无需登录,只需配对成功即可进行文件共享。

Send Anywhere:跨平台多设备文件共享应用

随着智能设备的常态化发展,我们办公不仅仅是使用电脑了,笔记本、手机、平板都有可能使用,但是这些设备之间的文件共享就成了问题,虽然有很多云盘、同步应用出现,各种同步都有,Send Anywhere的特点就是简单无限制跨网络速度快安全有保障跨平台

使用方法:

1、先选择要发送的文件;

2、获取6位数的一次性密钥;

3、进入接收设备使用一次性密钥配对;

4、设备接收文件。

Send Anywhere文件共享平台支持任何文件的共享,包括图片、视频、应用程序等,支持的网络有3G、4G、wifi,只要有网络的地方你就可以随时接受各种文件,移动网络、局域网、宽带网络都可以无差别使用。

Screenshot-2014-05-12-17.04.40-520x296

下载地址:

iOS版 | Android | Chrome扩展

Python 文件操作 模式详解

一、文件对象

我理解的文件对象就是一个接口,通过这个接口对文件进行相关操作。
《Python 核心编程》上说的很晦涩,这里没有深刻理解到,希望有人能解释给我听。
[codesyntax lang=”python”]
>>> f = open(‘demo.txt’,’r’)
>>> f
<open file ‘demo.txt’, mode ‘r’ at 0x00CCCEC0>
>>> type(f)
<type ‘file’>
[/codesyntax]

二、相关函数

[1]、内建函数:open()

提供了初始化输入/输出(I/O)操作的通用接口,成功打开一个文件后会返回一个文件对象,否则发生IOError异常。语法如下:
file_object = open(file_name,access_mode = ‘r’,buffering = -1)
分析如下:
1、file_name:表示要打开文件名字的字符串,可以是相对路径也可以是绝对路径。
如:我在D盘新建一个空白名为out的文本文件,然后进行相关操作。
[codesyntax lang=”python”]
>>> f = open(‘../out.txt’,’w’)
>>> f.write(‘good’)
>>> f.close()
[/codesyntax]
则打开该文件后,发现’good’已经写入进去了。
接下来使用绝对路径进行访问,如下:
[codesyntax lang=”python”]
>>> f = open(‘D:/out.txt’,’r’)
>>> f.read()
‘good’
>>> f.close()
[/codesyntax]
2、可选变量access_mode也是字符串,代表文件打开模式。

注意:

1):使用’r’或’U’模式打开的文件必须已经存在
2):’w’模式打开的文件若存在则先清空,然后重新创建
3):’a’模式打开的文件是为了追加数据做准备的,所有写入的数据将追加到文件末尾。如果文件不存在,则自动被创建。
4):’+’代表可读可写
5):’b’代表二进制模式访问
6):默认情况下是 ‘r’

3、buffering可选参数,用于指示访问文件所采用的缓存方式。0表示不缓存;1表示只缓存一行,n代表缓存n行。如果不提供或为负数,则代表使用系统默认的缓存机制。
用处?这个麻烦有人能告诉我!
关闭文件:
打开文件消耗系统资源, 并且依赖于文件模式, 其它程序或许不能访问它们。这就是一旦操作完毕就该关闭文件的重要所在。
接上面的操作,加入还没有关闭:
[codesyntax lang=”python”]
>>> f.closed #判断是否关闭
False
>>> f.close() #关闭方法
>>> f.closed
True
>>> f.tell() #如果已关闭,则一切针对文件操作都无效
Traceback (most recent call last):
File “<pyshell#27>”, line 1, in <module>
f.tell()
ValueError: I/O operation on closed file
>>>
[/codesyntax]

[2]、工厂函数file()

与open()一样,可相互替换
[codesyntax lang=”python”]
>>> f = file(‘../out.txt’,’r’)
>>> f.read()
‘good’
>>> f.close()
[/codesyntax]

三、相关方法

返回一个文件对象后(句柄),其实我也不清楚到底什么是句柄,这里摘自百度百科:
句柄,是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实 例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。 句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象。
一般与文件相关的方法无非是:输入、输出、文件内移动、杂项

[1]、输入

1、read():读取字节到字符串中,有可选参数size,默认是-1,如果为-1或复数则文件将会被读取到文件末尾。
[codesyntax lang=”python”]
>>> f.read()
‘good’
>>> f.read(2)
‘go’
2、readline():读取文件的一行,包括行结束符。同read()也有个可选参数size。
3、readlines():读取所有(剩余的)然后将它们作为字符串列表返回,它有个可选参数sizhint代表返回的最大字大小。
[codesyntax lang=”python”]
>>> f = file(‘../out.txt’,’r’)
>>> f.readlines()
[‘good’]
[/codesyntax]

[2]、输出

1、write():把含有文本数据或二进制数据块的字符串写入到文件中去。
2、writelines():针对列表操作,接受一个字符串列表作为参数,将它们写入文件,行结束符并不会被自动加入,如果需要的话必须在调用writelines方法前给每一行结尾加上结束符。
[codesyntax lang=”python”]
>>> f = open(‘d:/out.txt’,’w’)
>>> f.writelines([‘man’])
>>> f.close()
>>> f = open(‘d:/out.txt’,’r’)
>>> f.read()
‘man’
[/codesyntax]

注意:

当使用read()或者readlines()从文件中读取行时,Python并不会删除行结束符,这个操作留给了程序员。

[codesyntax lang=”python”]
>>> f.readlines()
[‘game is your life,game is your life,game is your life,game is your life,game is your life,[*]\n’, ‘game is your life,game is your life,game is your life[]’]
—————————
>>> f = open(‘demo.txt’,’r’)
>>> data = [line.strip() for line in f.readlines()]
>>> data
[‘game is your life,game is your life,game is your life,game is your life,game is your life,[*]’, ‘game is your life,game is your life,game is your life[]’]
[/codesyntax]
类似的,write()和writelines()也不会自动加入行结束符,应该自己添加。
[codesyntax lang=”python”]
>>> f = open(‘demo.txt’,’w’)
>>> f.writelines([‘ my name is BeginMan\n,I like coding’])
>>> f.close()
[/codesyntax]
打开该文件可查看:

[3]、文件内移动

tell()、seek()方法
[codesyntax lang=”python”]
f = open(‘d:/out.txt’,’rb’)
print f.tell() #[1]
f.seek(10,1) #[2]
print f.tell() #10
print f.read(10) # BeginMan,
print f.read(18) #I like coding.
print f.tell() #38
[/codesyntax]
【1】:tell():
tell 方法确认了已经移到当前文件位置
一个文件对象维护它所打开文件的状态。文件对象的 tell 方法告诉你在打开文件中的当前位置。
因为我们还没有对这个文件做任何事,当前位置为 0,它是文件的开始处。
【2】:seek():
文件对象的 seek 方法在打开文件中移动到另一个位置。第二个参数指出第一个参数是什么意思:
0 表示移动到一个绝对位置 (从文件开始算起),
1 表示移到一个相对位置 (从当前位置算起),
还有 2 表示文件末尾

[4]、文件迭代

[codesyntax lang=”python”]
>>> f = open(‘d:/out.txt’,’rb’)
>>> for eachline in f:
eachline

‘my name is BeginMan,\r\n’
‘I like coding.\r\n’
[/codesyntax]

四、相关属性

file.closed:文件已被关闭,否则为False
file.mode:文件访问模式
file.name:文件名称
[codesyntax lang=”python”]
>>> f.mode
‘r’
>>> f.name
‘demo.txt’
[/codesyntax]

本文参考至: BeginMan

备份工具tar详细用法

tar是Linux环境下最常用的备份工具之一。tar(taparchive)原意为操作磁带文件,但基于Linux的文件操作机制,同样也可适用于普通的磁盘文件。
tar可用于建立、还原、查看、管理文件,也可方便的追加新文件到备份文件中,或仅更新部分的备份文件,以及解压、删除指定的文件。
熟悉其常用参数,能方便日常的系统管理工作。

一、版本

还是那句,不同的操作系统,tar的命令参数是有点区别的:
[codesyntax lang=”bash”]

# tar --version
tar (GNU tar) 1.14

[/codesyntax]

二、简单操作

命令格式:
[codesyntax lang=”bash”]

tar [options] [tarfile] [other-files]
tar--long-option -function-options files

[/codesyntax]

tar可使用的参数非常多,先列举几个最常用的参数:
[codesyntax lang=”text”]

-t, --list
	列出归档文件内容目录
-x, --extract, --get
	从归档文件中解析文件
-c, --create
	创建新的归档文件
上面三个参数,不能同时存在,仅能使用其中一个,即t/x/c
-f file, --file=file
	指定备份文件,或设备,例如磁带机/dev/st0
-v, --verbose
	显示命令的执行过程
-Z, --compress, --uncompress
	使用compress命令处理备份文件
-z, --gzip, --gunzip, --ungzip
	使用gzip命令处理备份文件
-j, --I, --bzip
	使用bzip2命令处理备份文件
	-z和-j都是在备份文件打包后才进行压缩的操作的,并且,该操作会影响其他的参数。
-C directory, --directory=directory
	先进入指定的目录,再释放

[/codesyntax]

举例:
把/etc目录中所有的文件打包为etc.tar文件
[codesyntax lang=”bash”]

tar -cvf /tmp/etc.tar /etc

[/codesyntax]
把/etc目录中所有的文件打包并使用gzip压缩为etc.tar.gz文件
[codesyntax lang=”bash”]

tar -zcvf /tmp/etc.tar.gz /etc

[/codesyntax]
把/etc目录中所有的文件打包并使用bzip2压缩为etc.tar.bz2文件
这里的tar.gz或tar.bz2都是惯例,并不是特定条件。它仅为方便标识,也可将其设置成如tgz等。但建议遵循惯例
[codesyntax lang=”bash”]

tar -jcvf /tmp/etc.tar.bz2 /etc

[/codesyntax]
查看备份包中的内容,若为已经压缩的文件,需加上-z或者-j参数
[codesyntax lang=”bash”]

tar -ztvf /tmp/etc.tar.gz

[/codesyntax]
默认情况下,tar打包时都是使用相对路径的。所以释放时需要先进入目录目录,然后再解压。
同样的,根据使用的压缩方式,应加上-z或者-j参数
[codesyntax lang=”bash”]

cd /tmp && tar -zxvf /tmp/etc.tar.gz

[/codesyntax]
PS:这是另一种写法,结果和上面的相同,其会先进入/tmp目录,然后再释放包的
[codesyntax lang=”bash”]

tar -zxvf /tmp/etc.tar.gz -C /tmp

[/codesyntax]
释放单个etc/passwd文件,正如前面提到的,tar包中的是相对路径,所以不能使用“/etc/passwd”
并且,这里不能使用-C参数,释放文件是当前路径的相对路径,并带目录释放
[codesyntax lang=”bash”]

tar -zxvf /tmp/etc.tar.gz etc/passwd

[/codesyntax]
tar还可以支持很多额外的参数,方便我们在备份和释放的时候进行控制。

三、更多参数

1、备份

[codesyntax lang=”text”]

-d, --diff, --compare
	找出归档文件和文件系统的不同之处
-r, --append
	将文件附加到归档文件之后
-u, --update
	只附加比归档中新的文件
-A, --catenate
	将 tar 文件附加到归档文件之后
--concatenate
	与 -A 相同
--delete
	从归档文件中删除 (不能在磁带上!)
-N date, --newer=date, --after-date=date
	只将比指定日期更新的文件保存到备份文件
--exclude=pattern
	排除符合查找模式的文件
-P, --absolute-names
	备份文件中的文件名使用绝对路径,而不移除文件名前的“/”,默认是相对路径的
-l, --one-file-system
	复制文件或目录存放的文件系统必须和tar命令当前执行的文件系统相同,否则不执行;也就是讲,不处理其他分区的文件。(可忽略mount挂载分区的问题)
--mode=permissions
	备份时,把加入备份文件中的文件属性修改为指定的属性,格式和chmod命令接受的格式相同
--group=group
	备份时,把加入备份文件中的文件所属组设定成指定的组
--owner=owner
	备份时,把把加入备份文件中的文件所有者设定成指定的用户
--numeric-owner
	以UID和GID代替用户名和组名
--recursion
	递归模式(默认)
--no-recursion
	不进行递归处理,即不把指定目录下的所有文件和文件夹都备份
--newer-mtime=date
	仅增加指定日期后修改过内容的文件到备份文件中
--anchored
	排除时,排除匹配式中匹配整个文件路径(默认)
--no-anchored
	排除时,排除匹配式中可匹配“/”后的路径
--ignore-case
	排除时,排除匹配式中忽略大小写
--no-ignore-case
	排除时,排除匹配式中大小写敏感(默认)
--wildcards
	排除匹配式支持通配符(默认)
--no-wildcards
	排除匹配式不支持通配符
--wildcards-match-slash
	排除匹配式的通配符匹配“/”(默认)
--no-wildcards-match-slash
	排除匹配式的通配符不匹配“/”
-X file, --exclude-from file
	指定样式文件,供程序执行时剔除符合条件的文件
--remove-files
	删除已经加入到备份文件中的文件

[/codesyntax]
举例:
创建当前目录的全备份到backup.tar文件
(使用find的原因是,这样可以打包所有隐含文件或不符合命令规范的文件和目录)
[codesyntax lang=”bash”]

tar cvf - `find . -print` > backup.tar

[/codesyntax]
比2005年6月1日新的文件才会备份
[codesyntax lang=”bash”]

tar -N '2005/06/01' -zcvf home.tar.gz /home

[/codesyntax]
除/home/dmtsai目录外,/home和/etc目录的所有东西都打包
[codesyntax lang=”bash”]

tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

[/codesyntax]
删除etc.tar文件中的etc/pbm2ppa.conf文件
[codesyntax lang=”bash”]

tar --delete etc/pbm2ppa.conf -vf etc.tar

[/codesyntax]
把tmp.tar文件附加到etc.tar后面
[codesyntax lang=”bash”]

tar -A tmp.tar -vf etc.tar

[/codesyntax]
根据-T参数后的样式文件list.txt,打包/etc中指定的文件,同样的,list.tx默认也是相对路径的
[codesyntax lang=”bash”]

find . -name "*.d" -o -name "*.conf" > list.txt
	tar -T list.txt -czvf etc.tar.gz /etc

[/codesyntax]
通过管道,使用一条命令实现上面相同的功能
[codesyntax lang=”bash”]

find . -name "*.d" -o -name "*.conf" | tar -czvf etc.tar.gz -T -

[/codesyntax]

值得注意几个地方:
1)-f后面必须紧跟备份文件,xxx.tar或者xxx.tar.gz
2)使用–delete、-u、-r、-A的时候,后面跟的备份文件都必须为未压缩的,若备份文件已经压缩,需要使用gunzip先解压,操作完后再gzip;
也就是说,不能对tar.gz、tar.bz2等文件直接操作的;
3)备份打包时,默认为相对路径;而排除匹配式默认也是全路径匹配的
所以,在打包时,会提示:“tar: Removing leading `/’ from member names”
除非你使用-P参数或特定的参数指定

2、释放

[codesyntax lang=”text”]

-k, --keep-old-files
	还原备份文件时,不覆盖已存在的文件
-m, --modification-time, --touch
	还原文件时,不变更文件的更改时间
-p, --same-permissions
	解析许可权限信息,即保留备份文件中的权限信息
-s, --same-order, --preserve-order
	以与备份文件相同的顺序还原文件
--preserve
	等于同时设置-p和-s
--no-same-permissions
	不解析许可权限信息,这是普通用户的默认设置,仅对影响管理员的操作有影响
--no-same-owner
	不使用备份文件中的所有者信息,而以您自己的身份解析文件
--same-owner
	使用相同的文件所有者还原文件
--overwrite
	覆盖已经存在的文件和目录
--overwrite-dir
	覆盖已经存在的目录
--recursive-unlink
	释放前,先删除整个目录下所有文件的连接

[/codesyntax]
举例:
释放文件时,设置为备份文件中的相同所有者(仅对管理员而言)
[codesyntax lang=”bash”]

tar --same-owner -xzvf etc.tar.gz

[/codesyntax]
通过管道,把/etc目录用tar整个“拷贝”到/backup/etc,而不用建立任何临时文件
因为根本不需要生成备份包文件,所以这里不需要-z参数
[codesyntax lang=”bash”]

tar cvf - /etc | tar xvf - -C /backup/etc

[/codesyntax]
这里同上面的原理是一样的,只不过通过ssh直接“拷贝”到远端机器上而已
配合ssh密钥匹配,可实现不用人工干预的备份工作
[codesyntax lang=”bash”]

tar cvf - /etc | (ssh root@192.168.228.244 'tar xvf - -C /backup/etc')

[/codesyntax]

3、操作磁带设备

部分参数只适用于磁带设备,不适用于常规的磁盘文件。
[codesyntax lang=”text”]

-K file, --starting-file=file
	从指定的文件开始还原(按顺序)
-L length, --tape-length=length
	设置磁带的容量,单位为1024字节(bytes)
-M, --multivolume
	在建立、还原备份文件或列出其中内容时,采用多卷模式(不能对文件操作)
-V name, --label=name
	建立使用指定卷标的备份文件
-W, --verify
	写入备份文件后,校验文件是否正常
-F script, --info-script=script, --new-volume-script=script
	更换磁带时执行指定的脚本文件,必须与参数-M同时使用

[/codesyntax]
举例:
把/bin、/usr/bin目录都打包到st0磁带设备中
[codesyntax lang=”bash”]

	tar cvf /dev/st0 /bin /usr/bin

[/codesyntax]
把old.dmp文件追加到st0磁带中(使用cvf,会删除原来的文件的)
[codesyntax lang=”bash”]

	tar rvf /dev/st0 old.dmp

[/codesyntax]

4、其他

还有一些控制参数这里不详细讨论了,请自行测试。
但提醒一句,-T参数比较重要哦。
[codesyntax lang=”text”]

--null
-T
	从null设备读取文件名,覆盖-C的设置
-o, --old-archive, --portability
	将数据写入备份文件时使用V7格式
--posix
	将数据写入备份文件时使用POSIX格式
-G, --incremental
	处理旧GNU格式的增量备份
--rsh-command=command
	不使用rsh命令连接远程主机,而使用指定的命令进行
--suffix=suffix
	指定要删除文件前备份文件,该备份文件使用的后缀,默认是“~”
--totals
	创建备份文件时,列出已建立的备份文件的大小
tar --totals -cvf tmp.tar tmp/
-R, --block-number
	在输出信息时,一同block number信息
-S, --sparse
	若文件中有大量连续0字节时,将该文件保存成稀疏文件
-T file, --files-from=file
	指定样式文件,文件内容为一个或多个条件样式,供程序还原或创建符合指定条件的文件
--use-compress-program=program
	使用指定的压缩程序对备份文件压缩或解压
--volno-file=FILE
	使用或更新FILE文件中指定的卷号码
-w, --interactive, --confirmation
	当遇到问题时,要求用户先确认
-B, --read-full-records
	读取数据是重设扇区大小,仅适用于BSD 4.2的管道操作
-O, --to-stdout
	把从备份文件里还原的文件输出到标准输出设备
--version
	版本信息
--help
	帮助信息

[/codesyntax]

文件属性结构体_finddata_t

最近工作上有些事情需要对文件结构来进行修改
于是 便想着要分析下Windows上的文件结构属性
想着Windows应该早就已经定义了一个专门的结构体用来存储文件信息
便先来分析分析下这个结构体吧…..

功能:

用来存储文件各种信息的结构体。

定义:

struct _finddata_t
{
unsigned attrib;
time_t time_create;
time_t time_access;
time_t time_write;
_fsize_t size;
char name[_MAX_FNAME];
};

变量:

unsigned attrib:
文件属性的存储位置。它存储一个unsigned单元,用于表示文件的属性。
文件属性是用位表示的,主要有以下一些:
_A_ARCH(存档)
_A_HIDDEN(隐藏)
_A_NORMAL(正常)
_A_RDONLY(只读)
_A_SUBDIR(文件夹)
_A_SYSTEM(系统)
这些都是在头文件中定义的宏,可以直接使用,而本身的意义其实是一个无符号整型(只不过这个整型应该是2的几次幂,从而保证只有一位为1,而其他位为0)。既然是位表示,那么当一个文件有多个属性时,它往往是通过位或的方式,来得到几个属性的综合。例如只读+隐藏+系统属性,应该为:_A_HIDDEN | _A_RDONLY | _A_SYSTEM 。
time_t time_create:
这里的time_t是一个长整型变量类型,用来存储时间的,我们暂时不用理它,只要知道,这个time_create变量是用来存储文件创建时间的就可以了。
time_t time_access:
文件最后一次被访问的时间。
time_t time_write:
文件最后一次被修改的时间。
_fsize_t size:
文件的大小。这里的_fsize_t应该可以相当于unsigned整型,表示文件的字节数。
char name[_MAX_FNAME]:
文件的文件名。这里的_MAX_FNAME是一个常量宏,它在头文件中被定义,表示的是文件名的最大长度。

头文件引用:

#include "io.h"

C++生成空白文件

临近元旦 平台需要的空白对账文件已经不足
没办法 只能够写个脚本来生成一下一些空白文件了

要求:

1.名字需要以JXDZ+日期来命名
2.生成的文件大小必须为0KB,即为空白文件

其实 需求也还是比较简单的
想着之前也准备用C++来进行文件处理的
便按照网上的代码 自己琢磨了一个小程序
结果 竟然效果还不错…..

好吧 废话不多说 直接贴代码吧…..

#include "stdafx.h"
#include "afx.h"
#include <fstream>
#include <iostream>
#include <string>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	cout<<"请输入获取文件的目录:"<<endl;
	char _fPath[MAX_PATH];
	cin>>_fPath;
	CString fPath = _fPath;

	for (int i = 1; i <= 12 ; i++){
		for ( int j = 1; j <= 31 ; j++){
			switch(i){
				case 2: if(j > 28) continue;
				case 4:
				case 6:
				case 9:
				case 11: if (j == 31) continue;
			}
			CString s;
			s.Format(_T("%02d%02d"),i,j); 
			CString path = fPath + "JXDZ2014" + s;
			fstream file(path,ios::out);
			if (!file){
				cout<<"写文件失败!!"<<endl;
			}
			//file<<endl;
			file.close();
		}
	}
	getchar();
	return 0;
}

其实也还是比较简单的 就利用了下fstream文件流中的ofstream来处理的

之前也有写入endl,结果竟然发现如果写入endl的话文件竟然会有1KB,从而不符合要求
所以 后来就干脆就没有写了

嘿嘿 最终还算是符合了对账文件的要求….