一.概述
用labview来做局域网的文件传输已经很久了,用tcp顺利解决了大文件的传输,其中包括几个G 的文件,然而当你遇到一个文件夹里面包含的很多小文件需要传输时,一个个单独选择文件显得非常麻烦,因此实现文件夹的传输显得十分迫切,而且会使得传输程序更加全面,更加人性化。
二.软件流程图
以前所做的程序能够将一个文件顺利传输到客户端,因此传输文件夹里面的多个文件的基本思路就是让传输单个文件的程序循环多次,也就是在它的外面加一个for循环,循环次数由该文件夹所包含的文件个数决定,但是考虑到也可能传输的仅仅是一个文件,或者文件夹里面没有文件或只有几个空文件夹而已,因此软件的设计显得比想象中复杂了许多,最终的结果也确实如此,下图是软件设计的基本流程,分别为服务器的软件流程框图和客户机的框图。
三.具体程序框图分解
下面对服务器和客户机中对于传输文件夹部分的具体修改做一简单说明。
1. 判断选择的是文件夹还是文件:
使用获取扩展文件名函数,如果文件名为空字符串则选择的是文件夹,否则选择的是文件。[page]
2. 选择文件时对于操作:
将该文件名发送给客户端并将文件路径给读取文件的函数;
将1给发送的for循环的循环次数,并将它传输给客户端,告诉他只接受一个文件
3. 选择文件夹时的操作:
将该文件夹内所包含的的所有文件夹数组去掉前面的绝对路径部分后转化为电子表格字符串然后与所含的文件个数的数值一起发送给客户端;
将所含的所有文件路径给循环进行索引,对各个文件单独进行读取传输。
下面是客户端的一些修正,在建立tcp连接之后,具体的操作如下面所述:
4.处理接收到的数据:
刚开始接收到的是文件个数的值和所有文件夹的相对路径组成的字符串,将它们通过一个循环和匹配模式函数将它们组成一个数组,其中第零个所有未文件的个数,也就是接收端接受循环的循环次数,剩下的是所有文件夹组成的数组。
5.新建需要的文件夹:
根据所得的数组,将所有包含的文件夹在客户端要保存的位置以相对路径的方式新建。
完了就是由for循环来分别接受各个文件并将它们存放在刚刚新建的对于的文件夹里,文件夹名称与原来服务器的一致。
四.小问题解析
1.导出文件夹内所包含的的所有文件及文件夹用递归文件列表函数;
2.数组需要发送时要转化成字符串,使用数组至电子表格字符串转换函数,而且可以将换行符作为分隔符来分隔不同的文件夹名称,tcp不能直接发送数组;
3.单个文件输入到数组索引时转化为数组即可;
4.接收端用匹配模式函数将字符串转化为文件夹名数组;
5.接收端根据文件夹名称数组来通过循环新建对应的文件夹时要将文件夹名称字符串用删除两端空白函数进行处理,否则最后一个文件夹无法新建,原因偶不晓得,以后再议。
经过很多天的努力终于解决了一些问题,很是开心,哇哈哈,以后继续努力。
关键字:labview 局域网 TCP 传输文件夹
引用地址:
基于labview的局域网TCP传输文件夹问题的解决
推荐阅读最新更新时间:2024-03-30 23:06
基于软件定义无线电的实时频谱分析仪设备连接方法(一)简单2端口TCP/IP连接
TCP/IP传输协议 TCP/IP传输协议,即传输控制/网络协议,也称为网络通讯协议,是在网络使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定,并且它是保证网络数据信息及时、完整传输的两个重要协议。 TCP/IP传输协议不仅仅指的是TCP和IP两个协议,而是一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,因为其中TCP和IP协议最具代表性而被称为TCP/IP协议。 TCP/IP传输协议是一个四层的体系结构,包括应用层、传输层、网络层和网络接口层,不同层次采用了不同的协议。 应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的,主要协议有FTP、SMTP
[测试测量]
NIWEEK 2018——更强大的软硬件造就未来
5月22日,美国奥斯汀,美国国家仪器(National Instruments)举办了NIWEEK 2018年度盛宴,此次NIWEEK以“加速到来的未来(Future Faster)”为主题,旨在通过提供NI最新的软硬件平台,为客户解决未来问题。此次NIWEEK规模盛大,共有3300名听众参加了230场以上的课程培训,而在展览会上共有106个展商,NI也在展位上提供了104个Demo可让观众更直观的体验NI的产品和解决方案。 “为什么我们一再强调未来?虽然现今的挑战已然很大,但随着系统越来越复杂,未来对测试复杂度的需求将会越来越多,我们作为基础技术供应商,需要提前为客户做好储备。”NI总裁兼CEO Alex Davern在NI
[测试测量]
labview如何生成可执行文件/如何生成setup文件
如何制作EXE和SETUP文件 条件:Labview专业版下面以Labview8.2中文版本为例,以一个简单的测试系统为例,介绍具体的制作EXE文件和SETUP文件(安装文件)的步骤。 如何制作EXE文件: 1. 将所有需要的文件,包括主vi和所有子vi,以及用到的文本文件等附属文件,都放置到一个文件夹中,并确保所有程序都能正确执行。比如这个文件夹命名为 打包安装练习 。 2. 建立一个项目,将所有的vi和支持文件都添加到项目中去,也就是把这个文件夹添加进去,在项目中右键 我的电脑 -添加文件夹。将 打包安装练习 文件夹添加进去。并且保存项目,命名为 打包练习 3. 在项目中,右键-程序生成规范-新建-应用程序(EXE),将会
[测试测量]
使用LabVIEW和NI Single-Board RIO搭建智能电网监
我们使用NI Single-Board RIO开发的智能电网单元是一种可靠且具性价比的解决方案,它具有独特的灵活性,极适用于搭建自动化系统。使用NI软硬件平台使我们更具有技术优势,同时在系统开发过程中NI也提供了出色的本地化技术支持。 - Jaswinder Singh, NexGEN Consultancy Pvt Ltd 图1:选择NI Single-Board RIO可重配置的嵌入式系统,因为它是应对智能电网挑战的理想平台。 挑战: 设计一个高成本效益智能现代电网监控系统。 解决方案: 使用NI产品开发智能传感器系统,实时连续监测和控制电网的运行。 当前,电力系统正发生着巨大变化,电网系统需要将各种来源的电力配送给
[测试测量]
LabVIEW应用于工业测量和控制平台
LabVIEW可用于要求苛刻的工业应用,如高级I/O、高速模拟信号采集、振动监控、控制及其视觉之类的高级处理应用,以及与工业硬件(如OPC设备和PLC)的通信。另外,可以将LabVIEW中的可编程自动控制器(PAC)集成于其他测控系统中,从而达到附加的测量和控制功能,如图所示。工业测量和控制中的应用通常有:集成的测试和控制、机器自动化、机器视觉、机器状况监控、分布式监控和控制及功率监控等。 图 LabVIEW应用于工业测量和控制平台 LabVIEW在工业测量和控制平台中的应用及任务如表所示。 表:LabVIEW在工业测量和控制中的应用及任务
[测试测量]
labview编程技巧之条件结构和事件结构的复制
在编写一个中等规模的程序时,状态机和事件结构是常见的设计模式,SR(SHIFTREGISTER)经常用于在各个CASE之间传递数据,当CASE比较多的时候,经常会出现SR忘记连接或者需要增加新的SR,此时会非常麻烦,需要在几十个CASE之间切换,重新连线. Labview 的CASE结构和事件结构有一个非常重要的功能"CASE或者事件复制功能",借助这个功能,可以很容易解决上面的问题. 在设计程序时,一定要预留一些SR,不用的时候,设置成BOOLEAN类型,并不会占用很多的内存空间. 对于条件判断,SR可以设置成BOOLEANARRAY,这样一个SR可以表示多的位的状态,相当于PLC的M中间继电器.
[测试测量]
IAR Systems发布IAR PowerPac TCP/IP for ARM
IAR Systems发布TCP/IP协议栈,配套使用于IAR PowerPac RTOS,为使用IAR Embedded Workbench for ARM集成开发环境的开发者提供了一个简便易用的TCP/IP协议。它特别适用于需要与电脑网络(比如Internet)方便连接的便携式产品开发。 有了TCP/IP协议模块,IAR PowerPac就包括了把全套的TCP/IP协议移植到ARM芯片上的所有必要组件。IAR PowerPac TCP/IP协议在运行时可配置,适用于带以太网控制器的ARM嵌入式系统。比如,在ARM7处理器上使用IAR PowerPac TCP/IP协议栈,传输速度可以达到2.5MB/S。 这个通讯协议栈提供了支持
[新品]