以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  发布项目后,添加目录失效问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=71407)

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

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

--  作者:大红袍
--  发布时间:2015/7/10 17:31:00
--  

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

 

所以你的路径肯定错。


--  作者:307587760
--  发布时间: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下面,所以我打算在打开文件之前用代码创建一个目录
请问老师这样可以么?

--  作者:大红袍
--  发布时间:2015/7/10 18:15:00
--  

没必要自己创建。

 

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


--  作者:307587760
--  发布时间: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中的文件夹

--  作者:狐狸爸爸
--  发布时间: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
--  发布时间:2015/7/11 10:40:00
--  
是的,已经用代码创建了,问题已解决,谢谢老师图片点击可在新窗口打开查看