| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4028 人关注过本帖
标题:[求助] Copy file路径过长,报错!! 请各位大神不吝赐教!
取消只看楼主 加入收藏
ken3238
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2018-7-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
[求助] Copy file路径过长,报错!! 请各位大神不吝赐教!
看尽论坛所有关于路径的帖子,仍无法获得解决办法,是故向各位大神请教,谢谢!

操作环境: win10,64位, vfp9.0
问题例子:
*1)目标目录路径
Npath=’D:\518D\data\认证检测资料汇总2019-10-24\3)iso9001Q整套数据\中华人民共和国广东省东莞市志勤光电科技有限公司20200503\石龙分公司\年审记录\5运行记录约1203份\2打印-签字-复印-盖公章(红色)-扫描的资料\2行政人事部\3培训资料\2常规培训1\1生效第1月\1管理人员培训_需签字’ &&约260个字符

*2)建立目录
                if  !DIRECTORY('& Npath') &&
                    md ('& Npath') &&"
                  ENDIF && if  !DIRECTORY

*3)copy file
     Copy FILE "D:\518D\ndata2019-05-31\D-X-C2\*.doc*"  TO "& Npath"  &&储存DOC文件
 
*以上,全部报错


*=== 目前想到的笨法子是,手工将目录分几层,逐一建立目录,最后再COPY file

*代码如下:
Npath1='D:\518D\data\认证检测资料汇总2019-10-24\3)iso9001Q整套资料’
Npath2=’中华人民共和国广东省东莞市志勤光电科技有限公司20200503\石龙分公司\年审记录’
Npath3=’5运行记录约1203份\2打印-签字-复印-盖公章(红色)-扫描的资料\2行政人事部\3培训资料’
Npath4=’ 2常规培训1\1生效第1月\1管理人员培训_需签字’
 
         Npath1 = CHRTRAN(Npath1,' ','')  &&去除中问空格              
         Npath1 = ALLTRIM(Npath1)         &&去除两头空格

          Npath2 = CHRTRAN(Npath2,' ','')  &&去除中问空格              
          Npath2 = ALLTRIM(Npath2)         &&去除两头空格

          Npath3 = CHRTRAN(Npath3,' ','')  &&去除中问空格              
          Npath3 = ALLTRIM(Npath3)         &&去除两头空格

          Npath4 = CHRTRAN(Npath4,' ','')  &&去除中问空格              
          Npath4 = ALLTRIM(Npath4)         &&去除两头空格

       *逐层建目录
                  *1================
                  if  !DIRECTORY('& Npath1') &&
                     md ('& Npath1') &&"
                  ENDIF &&                                 
                    CHDIR '& Npath1'&&                    
                  *2================

                       if  !DIRECTORY('& Npath2') &&
                             md ('& Npath2') &&"
                        ENDIF &&  
                              
                            CHDIR '& Npath2' &&  
                   *3================

                     if  !DIRECTORY('& Npath3') &&
                           md ('& Npath3') &&"
                      ENDIF &&  
                              
                              CHDIR '& Npath3' &&  

                   *4================
                        if  !DIRECTORY('& Npath4') &&
                               md ('& Npath4') &&"
                        ENDIF &&
   
        *最後COPY file
     Copy FILE "D:\518D\ndata2019-05-31\D-X-C2\*.doc*"  TO "& Npath4"  &&储存DOC文件  

          *请教各位大神,有没有方法自动将目标路径裁剪而达成目的的?? 敬請不吝賜教,谢谢!


[此贴子已经被作者于2020-5-3 11:59编辑过]

搜索更多相关主题的帖子: file 资料 Copy DIRECTORY 空格 file Copy DIRECTORY 空格 资料 
2020-05-03 11:54
ken3238
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2018-7-5
收藏
得分:0 
以下是引用sdta在2020-5-3 11:59:36的发言:

VFP9 代码
TEXT TO cPath NOSHOW
D:\518D\data\认证检测资料汇总2019-10-24\3)iso9001Q整套数据\中华人民共和国广东省东莞市志勤光电科技有限公司20200503\石龙分公司\年审记录\5运行记录约1203份\2打印-签字-复印-盖公章(红色)-扫描的资料\2行政人事部\3培训资料\2常规培训1\1生效第1月\1管理人员培训_需签字
ENDTEXT
COPY FILE (cPath)

感謝版主,馬上測試,謝謝!!
2020-05-03 12:01
ken3238
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2018-7-5
收藏
得分:0 
以下是引用sdta在2020-5-3 11:59:36的发言:

VFP9 代码
TEXT TO cPath NOSHOW
D:\518D\data\认证检测资料汇总2019-10-24\3)iso9001Q整套数据\中华人民共和国广东省东莞市志勤光电科技有限公司20200503\石龙分公司\年审记录\5运行记录约1203份\2打印-签字-复印-盖公章(红色)-扫描的资料\2行政人事部\3培训资料\2常规培训1\1生效第1月\1管理人员培训_需签字
ENDTEXT
COPY FILE (cPath)

图片附件: 游客没有浏览图片的权限,请 登录注册


版主,您好!
經過測試,目錄可以建立,但COPY FILE時提示 '無效的路徑或文件名',請再賜教方法,謝謝!
2020-05-03 12:43
ken3238
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2018-7-5
收藏
得分:0 
以下是引用xuminxz在2020-5-3 12:55:17的发言:

fnm=cpath+'*.*'
copy file xxxxxxx to &fnm

測試一下,謝謝!!
2020-05-03 13:06
ken3238
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2018-7-5
收藏
得分:0 
以下是引用ken3238在2020-5-3 13:06:44的发言:


測試一下,謝謝!!

仍然是 '無效的路徑或文件名'
2020-05-03 13:09
ken3238
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2018-7-5
收藏
得分:0 
以下是引用xuminxz在2020-5-3 12:55:17的发言:

VFP命令不能过254个字符。看一下你的调试,Npath应该是空并没有得到值。

是的
我原來的路徑就是超過了254字符(約260以上),才想出分幾層建目錄的笨方法
現在是想請教各位大神,有無更便捷的方法...
2020-05-03 13:11
ken3238
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2018-7-5
收藏
得分:0 
以下是引用sdta在2020-5-3 13:47:12的发言:

经测试,出错原因是路径名过长造成的
TEXT TO cPath NOSHOW
D:\518D\data\认证检测资料汇总2019-10-24\3)iso9001Q整套数据\中华人民共和国广东省东莞市志勤光电科技有限公司20200503\石龙分公司\年审记录\5运行记录约1203份\2打印-签字-复印-盖公章(红色)-扫描的资料\2行政人事部\3培训资料
ENDTEXT
IF !DIRECTORY(cPath)
    MD (cPath)
ENDIF
COPY FILE json.txt TO (cpath  + "\json.txt")

是的,
所以現在我是手工將之分成幾層目錄來做,目前暫時通過了,
但當又遇到更深的目錄層次,又要修改PRG,煩
是故,想有個便捷的解決方法,...


[此贴子已经被作者于2020-5-3 13:58编辑过]

2020-05-03 13:54
ken3238
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2018-7-5
收藏
得分:0 
以下是引用sdta在2020-5-3 14:01:29的发言:

联系这个帖子的 https://bbs.bccn.net/thread-489569-1-1.html 发贴者

好的,謝謝
2020-05-03 14:05
ken3238
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2018-7-5
收藏
得分:0 
以下是引用吹水佬在2020-5-3 21:18:26的发言:

这文件目录有点问题,最好优化文件分类,精简文件目录结构。
用作VFP函数参数的字符串,好像都不支持超过254长。
可以用 Windows API 来处理,如 MakeSureDirectoryPathExists()、CreateFile()、ReadFile()、WriteFile()等。
简单的可用 FileSystemObject 对象,如:
cPath = "D:\518D\ndata2019-05-31\D-X-C2"
IF !DIRECTORY(cPath)
    MD (cPath)
ENDIF
sFile = cPath+"\test.txt"
STRTOFILE(sFile, sFile)
TEXT TO cPath NOSHOW PRETEXT 15
    D:\518D\data\认证检测资料汇总2019-10-24\3)iso9001Q整套数据\中华人民共和国广东省东莞市志勤光电科技有限公司20200503\石龙分公司\年审记录\5运行记录约1203份\2打印-签字-复印-盖公章(红色)-扫描的资料\2行政人事部\3培训资料\2常规培训1\1生效第1月\1管理人员培训_需签字
ENDTEXT
IF !DIRECTORY(cPath)
    MD (cPath)
ENDIF
dFile = cPath+"\tmp.txt"
ofs = CREATEOBJECT("Scripting.FileSystemObject")
ofs.CopyFile(sFile, dFile)
CLEAR ALL
RETURN

感謝版主指教!
我學習消化一下您給的代碼,有疑問再來請教,謝謝!!謝謝!!!
2020-05-03 23:06
ken3238
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2018-7-5
收藏
得分:0 
以下是引用lqzlql在2020-5-3 21:23:34的发言:

vfp中“-”在路径中不认识

"-",這個字符用在字符串中好像沒提示出錯,主要是路徑太長了...
2020-05-03 23:09
快速回复:[求助] Copy file路径过长,报错!! 请各位大神不吝赐教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030253 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved