Foxtable(狐表)用户栏目专家坐堂 → 发布项目后,添加目录失效问题


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

主题:发布项目后,添加目录失效问题

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


加好友 发短信
等级:幼狐 帖子:134 积分:1037 威望:0 精华:0 注册:2014/12/15 10:51:00
发布项目后,添加目录失效问题  发帖心情 Post By:2015/7/10 17:16:00 [只看该作者]

今天在发布项目后,发现在我发布项目的时候设置的添加目录失效了,
如图,我添加了TempFiles文件夹,但是结果却没有生成此文件夹,我以为是中文名称问题,修改了路径中所有中文字符,结果还是不行,在另外一个项目中发布也是如此,

图片点击可在新窗口打开查看此主题相关图片如下:目录丢失1.png
图片点击可在新窗口打开查看
请老师出招,谢谢了!
图片点击可在新窗口打开查看此主题相关图片如下:目录丢失.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/10 17:31:00 [只看该作者]

添加的目录或者文件,不能是 publish 里面的,生成的时候,会先删除 publish 文件夹,再生成。

 

所以你的路径肯定错。


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


加好友 发短信
等级:幼狐 帖子:134 积分:1037 威望:0 精华:0 注册:2014/12/15 10:51:00
  发帖心情 Post By:2015/7/10 17:50:00 [只看该作者]

那么请问老师,我可以用代码创建文件夹么?


    Dim dr As DataRow = e.Table.Current.DataRow
    Dim fl As String =  ProjectPath & "TempFiles\" & Rand.NextString(12) & dr("附件名称")

    If dr.SQLLoadFile("附件内容",fl) Then '如果提取文件成功
        Dim Proc As New Process '打开文件
        Proc.File = fl
        Proc.Start()
    Else
        Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End If




这是我的打开文件代码,现在我的目录都没有了,所以自然文件也打不开了,因为发布项目的时候目录不能在Publish下面,所以我打算在打开文件之前用代码创建一个目录
请问老师这样可以么?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/10 18:15:00 [只看该作者]

没必要自己创建。

 

你在你项目的文件夹下(和.foxdb文件同级),新建一个空的文件夹。然后发布的时候,把这个文件夹添加上去。


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


加好友 发短信
等级:幼狐 帖子:134 积分:1037 威望:0 精华:0 注册:2014/12/15 10:51:00
  发帖心情 Post By:2015/7/10 18:41:00 [只看该作者]

是这样子的老师:如果是在和.Foxdb同级的目录下创建一个文件夹,那么调试模式下是正常的,但是发布以后估计就不行了,我们发布后的程序不是还是在Publicl文件夹中么?

Dim dr As DataRow = e.Table.Current.DataRow
'    Dim fl As String =  ProjectPath & "TempFiles\" & Rand.NextString(12) & dr("附件名称")
    Dim fl As String =  ProjectPath  & Rand.NextString(12) & dr("附件名称")
    If dr.SQLLoadFile("附件内容",fl) Then '如果提取文件成功
        Dim Proc As New Process '打开文件
        Proc.File = fl
        Proc.Start()
    Else
        Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End If
没有发布项目的时候ProjectPath & 新建文件夹 这样是可以找到的,但是发布项目后 ProjectPath就在Public 文件夹下了,自然也就找不到新建文件夹了
如同老师前面说的,发布项目的时候会先删除Public中的文件夹

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/7/11 7:52:00 [只看该作者]

 用代码自己创建即可:

 

 

If filesys.FileExists( ProjectPath & "TempFiles") = False Then
    FileSys.CreateDirectory( ProjectPath & "TempFiles")
End If
Dim dr As DataRow = e.Table.Current.DataRow
Dim fl As String =  ProjectPath & "TempFiles\" & Rand.NextString(6) & dr("附件名称")
If dr.SQLLoadFile("附件内容",fl) Then '如果提取文件成功
    Dim Proc As New Process '打开文件
    Proc.File = fl
    Proc.Start()
Else
    Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If


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


加好友 发短信
等级:幼狐 帖子:134 积分:1037 威望:0 精华:0 注册:2014/12/15 10:51:00
  发帖心情 Post By:2015/7/11 10:40:00 [只看该作者]

是的,已经用代码创建了,问题已解决,谢谢老师图片点击可在新窗口打开查看

 回到顶部