• 12974阅读
  • 16回复

请问QT4 怎么在WINDOWS下创建空文件? [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 楼主  发表于: 2009-03-05
— 本帖被 XChinux 执行加亮操作(2009-03-05) —
我正在做一个C/S 传输系统.

客户端下载个文件,是先在要下载的目标路径下创建个空文件,然后在把数据读入其中.

可是我找了很久很久,都没找到创建文件的函数.

如果是在LINUX下的话,我可以用Process类里的start函数来执行touch filename 来创建空文件.

但是WINDOWS我搜了很久,都没有直接创建个空文件的命令,都是需要输入点东西的,比如 copy con filename 或者 edit filename

QT新手求助各位.

另外一个更重要的问题,QT的网络传输需要注意什么吗?比如 我服务器端循环write 数据500个字节 ,客户端循环read 数据500个字节.
数据的第一个字节是包头,代表这是文件传输途中,还是结束.
我是这样想传输文件的,会不会出错?比如,网络卡的时候,还有,如果网络中途中断的话,会不会导致循环永久卡死?
只看该作者 1楼 发表于: 2009-03-05
我用的QT CREATOR 所以是需要知道WINDOWS下的创建空文件的命令.
创建文件夹我知道是 MD
离线XChinux

只看该作者 2楼 发表于: 2009-03-05
多简单啊。
你自己带一个空文件,然后将其拷贝到指定地方就行了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
只看该作者 3楼 发表于: 2009-03-05
但是,如果客户端上传的话,服务器端也是先生成空文件吧,那么,客户端不告诉我上传的文件名,我怎么提前做一个空文件呢?
只看该作者 4楼 发表于: 2009-03-05
随机生成一个不重复的文件不行么?
然后往里写数据,最后获得文件名后改名
只看该作者 5楼 发表于: 2009-03-06
没有一个好的方法吗?不可能WINDOWS没有LINUX里面简单的TOUCH 功能吧?

那一般的下载软件是怎么做到创建文件的?都是随机生成一个文件再改名? 那还要做个随机,那不是很麻烦了.
只看该作者 6楼 发表于: 2009-03-06
下载软件获取文件名后创建文件的呀
只看该作者 7楼 发表于: 2009-03-06
关键是怎么创建文件啊?

WINDOWS我搜出来创建文件的命令就只有 Edit 需要进入编辑界面保存退出
copy con 需要手动输入点东西来保存文件.

我只想创建个空文件,文件名我已经从客户端界面上的文件列表里获取到了.
只看该作者 8楼 发表于: 2009-03-06
QFile f("filename.name");
if (!f.open(QIODevice::WriteOnly))
    return;

继续你对空文件的操作
只看该作者 9楼 发表于: 2009-03-06
请教楼上, 这样是不是可以对一个不存在的文件进行创建? 如果是的话,那就真是谢谢了.这论坛回复的人实在太少,有你这么热心的人真难得.
我一直以为构造函数必须是存在的文件.

另外,打开一个指定文件名的QFile 对象的时候,是不是只能通过构造函数给文件名?

如果我中途关闭这个对象,下一次再打开另一个文件,就没办法啦? 必须要重新创建?
因为我的QFile *file 是在客户端类里面.
我的想法是,类的构造函数NEW 一个QFILE给这个成员对象,然后要下载的时候,打开要下载的文件,下载完毕,关闭.下次下载另一个文件的时候,再打开另一个文件,这样是不是没办法?
只看该作者 10楼 发表于: 2009-03-06
还有就是 QFile 里的exists() 方法,不仅是查看某文件存不存在,还会查看某目录存在不存在.
但是很明显,目录和文件名是可以同名的.我不想检测目录存在不存在,只想检测文件存在不存在.

是不是没有办法?
只看该作者 11楼 发表于: 2009-03-06
可以么……win下不行唉……

我就用autorun.inf文件夹来防优盘病毒的……
只看该作者 12楼 发表于: 2009-03-06
你做个实验不就完了么……很多问题没什么必要问……

估计大家都觉得你的问题有点莫名……因为linux下开空文件也不会touch那样……

一个fopen就好了
只看该作者 13楼 发表于: 2009-03-06
不是没做实验,我是做了很多实验也得不到结果才会问的这些都是暂时我没办法解决的.

QFile 类我已经看完成员函数了,除了构造函数,没有其他函数能打开指定文件了,所以我才来问问是不是真没办法.
只看该作者 14楼 发表于: 2009-03-06
你没看list all member吧……

open是qiodevice的,file也继承的
离线liuyq
只看该作者 15楼 发表于: 2009-04-25
echo 2>filename
离线318065268
只看该作者 16楼 发表于: 2009-04-25
“如果我中途关闭这个对象,下一次再打开另一个文件,就没办法啦? 必须要重新创建?”
我觉得不必吧?保存好文件的路径名就可以了吧。要打开它,按路径名重新打开就是。
Email  rsail@126.com(私人邮箱)
QQ:   318065268
快速回复
限100 字节
 
上一个 下一个