Foxtable(狐表)用户栏目专家坐堂 → [求助]扩展列文件保存位置问题


  共有4150人关注过本帖树形打印复制链接

主题:[求助]扩展列文件保存位置问题

帅哥哟,离线,有人找我吗?
cqlwsam
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1014 积分:7535 威望:0 精华:0 注册:2010/4/12 12:23:00
[求助]扩展列文件保存位置问题  发帖心情 Post By:2015/1/23 9:41:00 [只看该作者]

数据库中有多文件扩展列。计划采用FTP方式保存。但存在网络不通问题。需加一个判断。如果:网络通畅,则保存在服务器上;如果网络不通,先保存在本地,网络通畅后在上传服务器。请教判断代码如何写!谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/23 9:48:00 [只看该作者]

呵呵,这个不是简单的一两句代码可以判断写的. 是个复杂的过程.

思路大概是,添加文件时,在添加文件事件利用PINg判断网络是否通http://www.foxtable.com/help/topics/1401.htm

不同则取消,转而存到本地,并且把路径地址文件名和标记存放到另外一列,或者专门起一个表.

可以在计时器中用多线程定时检测网络是否通,通就遍历未上传的文件上传上去,要想不影响操作,不卡顿,就得用多线程  FTP上传看http://www.foxtable.com/help/topics/1410.htm

也可以额外用一个按钮,点击就判断服务器是否通,通就批量上传.

 回到顶部
帅哥哟,离线,有人找我吗?
cqlwsam
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1014 积分:7535 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By:2015/1/23 10:15:00 [只看该作者]

 If TryConnectHost("127.0.0.1") Then
                Dim ftp1 As New FtpClient
                If ftp1.DirExists(txt) Then
                    Dim Result As DialogResult
                    Result = MessageBox.Show("系统中存在同名目录,需要保留原来的数据吗?","提醒",MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
                    If Result = DialogResult.yes Then
                        .save()
                        .refresh
                    Else If Result = DialogResult.no Then
                        Dim fls As List(of String)
                        fls = ftp1.GetFileList(txt)
                        For Each fl As String In fls
                            ftp1.DeleteFile(fl)
                        Next
                    Else
                        .current.reject()
                        .Refresh
                        Return
                    End If
                Else  ftp1.MakeDir(txt)
                    .save()
                    .Refresh
                End If
            Else
                MessageBox.Show("网络不通,文件暂时保存在本地,网络联通后再行上传!!","提醒!!",MessageBoxButtons.OK,MessageBoxIcon.Information)
                Dim pth As String = ProjectPath & "Attachments\" & txt
                If FileSys.DirectoryExists(pth) Then
                    Dim Result As DialogResult
                    Result = MessageBox.Show("系统中存在同名目录,需要保留原来的数据吗?","提醒",MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
                    If Result = DialogResult.yes Then
                        .save()
                        .refresh
                    Else If Result = DialogResult.no Then
                        For Each File As String In FileSys.GetFiles(pth)
                            If file Like "*.*" Then
                                FileSys.DeleteFile(file,3,3)
                            End If
                        Next
                    Else
                        .current.reject()
                        .Refresh
                        Return
                    End If
                Else filesys.CreateDirectory(pth)
                    .save()
                    .Refresh
                End If
            End If


 回到顶部
帅哥哟,离线,有人找我吗?
cqlwsam
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1014 积分:7535 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By:2015/1/23 10:17:00 [只看该作者]

ftp下如何将一个目录下的文件移动另一个目录下。好像没得move一类的命令

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/23 10:19:00 [只看该作者]

 参考

 

Rename

用于重命名文件或目录,语法:

Rename(currentName, newName)

currentName:要重命名的文件或目录,含路径。
newName:新的名称,含路径。

如果重命名成功,则返回True,否则返回False.


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/23 10:19:00 [只看该作者]

用rename 看看行不行

Rename

用于重命名文件或目录,语法:

Rename(currentName, newName)

currentName:要重命名的文件或目录,含路径。
newName:新的名称,含路径。

如果重命名成功,则返回True,否则返回False.

示例

重命名文件:

Dim ftp1 As New FtpClient
ftp1.Host=
"196.128.143.28"
ftp1.Account = 
"foxuser"
ftp1.Password = 
"138238110"
If 
ftp1.Rename("\Photo\Desert.jpg","\新目录\Desert1.jpg") Then
    
Messagebox.show("重命名文件成功!")
End If


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/23 10:20:00 [只看该作者]

可以的,帮助有说

例如将文件"jz.png"从photo目录移到到newkey目录:

Dim ftp1 As New FtpClient
ftp1
.Host="196.128.143.28"
ftp1
.Account = "foxuser"
ftp1
.Password = "138238110"
If 
ftp1.Rename("\photo\jz.png","\newkey\jz.png") Then
    
Messagebox.show("移动文件成功!")
End If

MakeDir


 回到顶部