以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]Addfile的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=157911) |
-- 作者:chnfo -- 发布时间:2020/11/2 14:15:00 -- [求助]Addfile的问题 用表A的X列存了需要压缩的文件的列表。 然后在项目的export目录下存放了一些文件,包括了X列中有的,也有没有的。
Dim zip As New zipFile Dim zFile As String = ".\\export\\YS.zip" ‘准备把表A的X列中存在的文件压缩成为一个压缩包,文件名为YS.zip’ If FileSys.FileExists(zfile) Then \'如果压缩文件已经存在 zip.Open(zFile) \'则打开 Else zip.Create(zFile) \'否则创建 End If For Each file As String In DataTables("表A").GetValues("X") If filesys.FileExists(".\\export\\" & file) = True AndAlso file <> "YS.zip" Then zip.AddFile(".\\export\\" & file ) End If Next zip.Close() 然后执行就报错了 版本:2020.5.29.8 --------------------------- 代码执行出错,错误信息: System.ArgumentException: 路径中具有非法字符。 在 System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) 在 System.IO.Path.GetFileName(String path) 在 C1.C1Zip.C1ZipEntryCollection.a(String A_0, Int32 A_1) 在 UserCode.Test() --------------------------- 确定 |
-- 作者:chnfo -- 发布时间:2020/11/2 14:18:00 -- 很诡异的是,这样运行又没有问题 Dim zip As New zipFile Dim zFile As String = ".\\export\\YS.zip" If FileSys.FileExists(zfile) Then \'如果压缩文件已经存在 zip.Open(zFile) \'则打开 Else zip.Create(zFile) \'否则创建 End If For Each file As String In filesys.GetFiles(".\\export") ‘这是直接去export下去压缩文件’ If filesys.GetName(file) <> "YS.zip" Then zip.AddFile( file ) End If Next zip.Close() 两者的区别就是一个是从其它地方获取文件的名称,然后与文件的路径组合成需要压缩的文件名(含路径) 一个是直接在文件夹下读取文件名称 |
-- 作者:有点蓝 -- 发布时间:2020/11/2 14:19:00 -- 本地文件操作都必须使用完整的绝对路径,不能使用相对路径 Dim zFile As String = "c:\\xxx\\export\\YS.zip"
|
-- 作者:chnfo -- 发布时间:2020/11/2 14:26:00 -- Dim zip As New zipFile Dim zFile As String = ".\\export\\YS.zip" If FileSys.FileExists(zfile) Then \'如果压缩文件已经存在 zip.Open(zFile) \'则打开 Else zip.Create(zFile) \'否则创建 End If For Each file As String In filesys.GetFiles(".\\export") If filesys.GetName(file) <> "YS.zip" Then zip.AddFile( file ) End If Next zip.Close() ----但这样执行试过了,没有问题哟
|
-- 作者:有点蓝 -- 发布时间:2020/11/2 14:33:00 -- 请改为完整的绝对路径 |
-- 作者:chnfo -- 发布时间:2020/11/2 14:47:00 -- 好吧,确实绝对路径可以解决。 用projectpath,也不复杂
|
-- 作者:chnfo -- 发布时间:2020/11/3 9:07:00 -- 再请教一下,哪些情况下可以用相对路径?比如外部数据连接,如果单机使用安装目录下的指定accdb。象readalltext之类的哪些要用绝对路径?还是说不管是啥,全换成projectpath? |
-- 作者:有点蓝 -- 发布时间:2020/11/3 9:26:00 -- 客户端程序基本上都只能使用绝对路径。只有网页有相对路径的用法 |
-- 作者:chnfo -- 发布时间:2020/11/3 10:45:00 -- 设置外部数据源的那里,选择和输入数据库名称那里,能用.\\xxx.accdb吗? |
-- 作者:有点蓝 -- 发布时间:2020/11/3 10:47:00 -- 不能 |