AnyChat技术支持论坛

标题: 传送文件问题 [打印本页]

作者: hk92    时间: 2015-12-12 09:08
标题: 传送文件问题
本帖最后由 hk92 于 2015-12-12 09:33 编辑

  for (int i = 0; i <sendPath.Length; i++)
  { int flag = AnyChatCoreSDK.TransFile(m_TempUserID, sendPath, 1, 0, 0, ref taskId);
                        Print("成功发送" + sendPath + "文件");
                       // File.Delete(@
sendPath);
                        //Print("成功删除" +
sendPath+ "源文件");
                        }
在这个函数里面sendPath存储的文件的路径,按照上述的代码写法可以实现自动传送多个文件,但是把  File.Delete(@
sendPath); Print("成功删除" + sendPath + "源文件");这两句话加进来,就只能循环一次,为什么呢?我想把所有的文件发送完了,就把源文件给删除了。


作者: 佰锐科技-苏晴    时间: 2015-12-12 11:07
您好,  File.Delete(@ sendPath); Print("成功删除" + sendPath + "源文件")这个函数应该把源文件一次给删除完了。您把它放在for循环外面试试。
作者: hk92    时间: 2015-12-12 15:13
本帖最后由 hk92 于 2015-12-12 16:36 编辑
佰锐科技-苏晴 发表于 2015-12-12 11:07
您好,  File.Delete(@ sendPath); Print("成功删除" + sendPath + "源文件")这个函数应该把源文件一次给删 ...

for (int i = 0; i <sendPath.Count; i++)
                        { int flag = AnyChatCoreSDK.TransFile(m_TempUserID, sendPath, 1, 0, 0, ref taskId);

                       
                            Print("成功发送" + sendPath + "文件");
                        }
                        for (int i = 0; i <sendPath.Count; i++)
                        {
                            File.Delete(@sendPath);
                        }
1、我在  File.Delete(@sendPath);这句话前面加了断点调试才能执行删除,如果没有加断点调试,是没有执行这 File.Delete(@sendPath)句的,为什么呢?
2.怎么知道int flag = AnyChatCoreSDK.TransFile(m_TempUserID, sendPath, 1, 0, 0, ref taskId);把文件发送完毕了(flag=0只能说明,执行发送,不代表发送完成了吧?)?

作者: 佰锐科技-李永星    时间: 2015-12-12 18:03

您好,你可以利用返回的的taskId,调用API来查询文件的发送状态:DWORD BRAC_QueryTransTaskInfo(DWORD dwUserid, DWORD dwTaskId, int infoname, char FAR* infoval, int infolen),参数:
dwUserid: 任务发起者用户编号(并非传输目标用户编号)
dwTaskId: 需要查询的任务编号
infoname 需要查询的信息代码(见备注附表)
infoval 查询信息值的保存参数地址
infolen 保存查询信息值参数类型所占内存大小
备注:
通过调用该方法,可以查询指定传输任务编号的缓冲区传输情况。用户编号与任务编号组合才具有唯一性,不同的用户可能存在相同的任务编号。
目前提供的查询的信息代码见下表:





欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3