【问题标题】:Network Drive Letter or UNC Path for file path网络驱动器号或文件路径的 UNC 路径
【发布时间】:2015-08-06 16:47:21
【问题描述】:

我正在为旧版 VisualFoxPro 应用程序提供应用程序支持。该应用程序的用户似乎在运行报告时遇到问题。该报告在来自数据库 (MS SQL SERVER) 和本地文件 (xxPAY.dbf) 的数据之间进行比较并显示报告。运行报告的用户界面要求用户输入月份和年份,xxPAY.DBF 的路径也相应更改。例如

如果用户输入201501,路径将变为P:/xx/2015/01/xxPAY.dbf。如果用户输入201402,路径将变为P:/xx/2014/02/xxPAY.dbf

P: 驱动器是网络驱动器,应用程序也以管理员身份运行。在调试程序时,路径似乎总是很好,但我会收到一条错误消息,提示“P:/xx/2015/01/xxPAY.dbf”未找到。但是,如果我提供 UNC 路径“\ServerName\xx\2015\01\xxPAY.dbf”,则报告生成良好。任何想法可能是这种行为的原因。我不确定是否需要代码,但无论如何我都会在这里发布:-

IF !FILE('P:\IMPORT\Wei-cosmts\'+ ;
        LEFT(ALLT(STR(thisform.yyyymm,6,0)),4)+'\'+ ;
        RIGHT(ALLT(STR(thisform.yyyymm,6,0)),2)+'\'+ ;
        lsPeriod+'pay.dbf')
     =MESSAGEBOX('Can not find '+'P:\IMPORT\Wei-cosmts\'+ ;
        LEFT(ALLT(STR(thisform.yyyymm,6,0)),4)+'\'+ ;
        RIGHT(ALLT(STR(thisform.yyyymm,6,0)),2)+'\'+ ;
        lsPeriod+'pay.dbf'+'. '+CHR(13)+CHR(13)+'Comparison report can not run.',16)
    RETURN .F.
ENDIF

【问题讨论】:

    标签: visual-foxpro unc file-not-found network-drive


    【解决方案1】:

    如果 UNC 路径有效,我建议使用它。

    FWIW,旧的“映射驱动器”功能无论如何都没有用,只是“真实”(UNC)网络地址的最终用户表示。在您的特定情况下,我猜您在 IDE 中调试时当前的 Windows 用户可能有一个,而运行时用户,即“运行身份”管理员帐户,可能没有。

    在您的代码中,您不需要将计算的路径字符串连接两次,例如

    Local lcFile
    lcFile = "\\ServerNameOrIP\sharedFolder\" + ;
        LEFT(ALLT(STR(thisform.yyyymm,6,0)),4)+'\'+ ;
        RIGHT(ALLT(STR(thisform.yyyymm,6,0)),2)+'\'+ ;
        lsPeriod+'pay.dbf'
    If Not File(m.lcFile, 1)
        MessageBox(m.lcFile + " not found")
    ...
    

    【讨论】:

    • 我看到遵循 UNC 路径方法的一个问题是,每次移动服务器时都需要更改代码。似乎以管理员身份运行命令提示符并使用命令“net use P:\\servername\folder”映射驱动器可能会解决问题。但这是我必须尝试的事情
    • 实际上,大多数人无论如何都会避免在他们的代码中使用硬编码的路径字符串,例如,将这些路径字符串保存在用户配置文件 %AppData% 文件夹中某处的“配置”文件中。在 VFP 中,您实际上可以使用外部 config.fpw 文件,或者更可扩展的位置,如 XML、INI 等,甚至是 TXT 文件。在运行时动态创建映射驱动器不会引起麻烦,因为这些是最终用户功能,只有几个字母可用,并且您无法知道某个客户端上是否已经存在“P”
    猜你喜欢
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 2010-10-08
    • 2010-12-12
    相关资源
    最近更新 更多