社区
Windows SDK/API
帖子详情
怎样判断文件已经复制完毕?
程序猫
2006-06-22 10:14:53
现在有这样的需求,复制一个文件后马上要进行一个对新复制文件的操作,那么就要求文件必须是复制完成的,但现在不知道怎么判断文件已经复制完成,用CopyFile或者ShFileOperation好象都不能得到这个完成的信息,请各位朋友帮忙看看,谢谢:)
...全文
521
11
打赏
收藏
怎样判断文件已经复制完毕?
现在有这样的需求,复制一个文件后马上要进行一个对新复制文件的操作,那么就要求文件必须是复制完成的,但现在不知道怎么判断文件已经复制完成,用CopyFile或者ShFileOperation好象都不能得到这个完成的信息,请各位朋友帮忙看看,谢谢:)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
程序猫
2006-06-25
打赏
举报
回复
To tttk(网络芝麻) :
非常感谢您给的资料,CopyFile和ShFileOperation的确如您所说的那样,我现在使用文件流进行了文件复制,满足了我的要求,呵呵:)
程序猫
2006-06-25
打赏
举报
回复
To SonicX(SonicX):
我后来也使用了流对象自己进行文件复制,用的是文件流对象,也就是流的操作结束了以后才会做后边的操作,这样满足了我的要求,呵呵:)
tttk
2006-06-24
打赏
举报
回复
API函数CopyFile和ShFileOperation一般都是在单独的线程中运行,所以不会让你程序停下来单独等待,正如我们在windows文件下拷贝文件的时候,我们还可以对文件夹下的其它文件继续操作一样。
但也正如Windows在执行的拷贝的时候会给我们提供一个可视化的进度条一样,拷贝过程是可以跟踪的。那就是利用API函数给我们提供的CallBack函数。
CopyFile没有CallBack函数,但是CopyFileEx有:
BOOL CopyFileEx(
LPCTSTR lpExistingFileName,
LPCTSTR lpNewFileName,
LPPROGRESS_ROUTINE lpProgressRoutine,
LPVOID lpData,
LPBOOL pbCancel,
DWORD dwCopyFlags
);
参见MSDN:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/copyfileex.asp
SHFileOperation也有回调函数,答案是定义它的参数结构:
typedef struct _SHFILEOPSTRUCT {
HWND hwnd;
UINT wFunc;
LPCTSTR pFrom;
LPCTSTR pTo;
FILEOP_FLAGS fFlags;
BOOL fAnyOperationsAborted;
LPVOID hNameMappings;
LPCTSTR lpszProgressTitle;
} SHFILEOPSTRUCT, *LPSHFILEOPSTRUCT;
参见MSDN:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/structures/shfileopstruct.asp
SonicX
2006-06-24
打赏
举报
回复
var
S:TMemoryStream;
begin
S:=TMemoryStream.Create;
S.LoadFromFile('c:\testA.txt');
S.SaveToFile('c:\testB.txt');
showmessage('已复制完');
//继续执行代码....
end;
feixueliantianbai
2006-06-23
打赏
举报
回复
学习
程序猫
2006-06-23
打赏
举报
回复
TO SonicX(SonicX):
请问用哪一个delphi函数可以判断文件已复制完成呢?
SonicX
2006-06-22
打赏
举报
回复
用DELPHI提供的函数来完成不就行了
程序猫
2006-06-22
打赏
举报
回复
To liangqingzhi(老之):
我这个问题不涉及多文件的复制哦,大概我写的问题有歧义吧,我的意思是复制完一个文件后,马上要对这个新复制好的文件进行操作。
老之
2006-06-22
打赏
举报
回复
其实你可以多个文件一起复制的。
f.pFrom后面的多个文件名用#0#0隔开就可以了。
程序猫
2006-06-22
打赏
举报
回复
TO liangqingzhi(老之):
比如复制一个文件需要30秒的时间,而以上两个函数进行复制时,只要是可以进行复制就立刻返回,并不是等到30秒复制完毕后才返回的。
老之
2006-06-22
打赏
举报
回复
帮助: Returns zero if successful or nonzero if an error occurs.
if ShFileOperation(f)=0 then ShowMessage('成功');
SpringBoot+SSM校园在线打印预约系统设计与实现(附源码)
开发背景随着时代的进步和科技的发展,计算机网络的发展日新月异,深刻的影响着我们的生活,受疫情的影响,为了方便教师和学生打印
文件
以及取
文件
,节约学生和老师等待时间,节约打印店的打印成本,提高打印店的打印效率,开发一款在线的打印系统是十分有必要的,校园在线打印预约系统把上传
文件
、选择打印店、打印支付、打印完成取
文件
以及管理功能集成一身,各管理人员分工合作、相互配合,及时完成打印任务。也方便打印店打印更方便更节约成本的打印
文件
以及节约学生的空闲时间。现阶段学校的打印
文件
模式都是传统的打印方式:学生需要跑到打印店拿QQ,微信,U盘给打印店的电脑上传
文件
,在等待别人打印完成后才能让打印店管理员打印
文件
,打印店管理员需要一个一个选择
文件
打印,在打印高峰期间,管理员打印
文件
忙不过来,不能给同学良好的打印服务,所以传统的打印
文件
方式不满足与当前社会的发展趋势。 开发目的利用现代计算机相关技术来进行在线打印预约,以减轻打印店工作人员的工作负担以及提高工作效率,减少学生打印等待时间。学生只需要上传需要打印的
文件
,然后选择打印店,选择支付以及去打印
文件
大概时间就可以,而打印店管理员只需要接收学生发的
文件
,以及打印,把打印的
文件
整理即可,可以根据学生取
文件
的时间自己编排打印
文件
的顺序,更好的利用时间,提高打印
文件
效率。 项目简介该项目是基于SpringBoot+SSM校园在线打印预约系统,包含两个角色:一个是用户模块,一个是打印店管理员模块。用户模块下面有个人中心模块,店铺选择模块,资料分享模块,资料分享模块,交易记录模块,使用帮助模块。在打印店管理员模块下有点单管理模块,店铺管理模块,价格管理模块。 项目运行截图下面从登录页面、用户界面和打印店管理页面三个部位来叙述全部系统。用户、商店和管理员都必须登录才可以浏览在线管理系统系统。管理员可以管理方法商店,但管理员可以是商店。用户登录输入校园在线打印预约系统的网址后,电脑浏览器将进到校园在线打印预约系统。会先进到系统的主页。用户可以先浏览系统首页,随后登录。用户注册如果登录者尚未注册,您需要注册一个帐户。单击右侧的注册按钮,将显示注册页面。用户需要填写用户名、电话号码、登录密码等信息。输入手机号码后,点击发送验证码,验证码就会发送到手机上。填写
完毕
后,点击注册按钮。添加后会跳转到登录页面。注册界面如图 短信验证码发送成功后,在线预约打印系统会弹出提示,此时用户的手机就会收到短信验证码。短信验证码发送成功界面如图进行账号注册。用户收到短信验证码如图 用户登录后的首页店铺详情个人中心 积分记录我的
文件
文件
共享管理员登录订单信息 订单详情店铺信息 价格设置 项目论文
判断
文件
是否写入
完毕
在对
文件
进行读取,
复制
等操作前,往往需要去
判断
文件
是否
已经
完全写入
完毕
,如果这个
文件
的写入操作是在你自己写的代码里,那么可以通过自己添加一些标志位来获取当前
文件
的写入状态,但是如果
文件
的写操作并非是你的代码去控制的,比如是系统dump hprof
文件
,那么应该怎么去
判断
hprof
文件
已经
写入
完毕
呢? 下面的方式可以
判断
文件
是否读写
完毕
,基本思想就是投机取巧的用了
文件
的长度,如果不再涨那么就
判断
写
FileSystemWatcher
判断
文件
复制
完成
引自:http://blog.csdn.net/dotnet90/article/details/21029625 使用 FileSystemWatcher 监视指定目录中的更改。可监视指定目录中的
文件
或子目录的更改。该组件可以监视本地计算机、网络驱动器或远程计算机上的
文件
。 可监视目录或
文件
中的若干种更改。例如,可监视
文件
或目录的 Attributes、LastWrite
网络编程之epoll怎么
判断
数据读取
完毕
?
只有在使用epoll ET(Edge Trigger)模式的时候,才需要关注数据是否读取
完毕
了。使用select或者epoll的LT模式,其实根本不用关注数据是否读完了,select/epoll检测到有数据可读去读就OK了。 之前写过几篇关于网络编程的文章,c++之网络编程,c++之网络编程–
文件
传输,QT之TCP网络编程,QT之网络编程-
文件
传输,可以参考一下。 epoll怎么
判断
数据读取完...
Java
判断
文件
是否写入完成
Java
判断
文件
是否写入完成 在实现
文件
监听时,当有
文件
上传时,会立即监听到,并且会进行操作。若
文件
传输未完成,此时取到的
文件
就是非完整
文件
,这时如果对
文件
进行操作,就可能出现一些未知的错误,如转Base64就会得到一个非完整的Base64。这里可以通过
判断
文件
前后的长度是否一样,来检测
文件
是否上传完成。代码如下。 long oldLength; long newLength; //
判断
文件
是否写入完成 do { oldLength = new File(path).length(); log.info
Windows SDK/API
1,183
社区成员
22,335
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章