aardio吧 关注:638贴子:764
  • 4回复贴,共1

关于fsys使用遇到的问题

取消只看楼主收藏回复

我在学习使用fsys的拷贝文件功能,测试我的电脑很奇怪,直接用拷贝函数,没反应,源文件夹和目标文件夹都是事先建好的。代码如下:
import fsys;
var root = "C:\Users\Administrator\Desktop\临时文件";
fsys.copy(root,"E:\test");
用如下代码,遍历文件夹,就可以拷贝成功。
import fsys;
var root = "C:\Users\Administrator\Desktop\临时文件";
fsys.enum( root,,
function(dirname,filename,fullpath,findData){
var path = fsys.path.relative(fullpath,root,false);
if(filename){
fsys.copy(fullpath,"E:\test");
}
else {
fsys.copy(fullpath,"E:\test");
}
},true
);
我的电脑是win10的,aadio升级到最新版的。
在一台电脑测试,fsys.delete可以,copy、move、rename都不行。另一台电脑测试,delete也不行。
后来看范例,用enum遍历一下,再用回调函数处理就可以。
另外测试fsys.isDir()函数,都拿正常的目录测试,有的测试通过;有的通不过。


IP属地:广东1楼2022-09-04 18:42回复
    谢谢Jacen指导,并提供了错误信息功能。我在win10,确实遇到了fsys.copy功能不稳定的情况,偶尔正常,大多数情况不正常。测试代码和结果如下:
    import console;
    import fsys;
    var rel = fsys.isDir("E:\test1");
    if(!rel){
    console.print("E:\test1不是目录")
    }
    rel = fsys.isDir("E:\test");
    if(!rel){
    console.print("E:\test不是目录")
    }
    fsys.enum( "E:\test1", "*.*",
    function(dirname,filename,fullpath,findData){
    if(filename){
    io.print("发现文件:"+filename,"完整路径:"+fullpath)
    rel = fsys.copy(fullpath,"E:\test");
    if(rel){
    io.print(fullpath,"拷贝成功!")
    }
    }
    else{
    io.print( "发现目录:" + dirname )
    rel = fsys.copy(fullpath,"E:\test");
    if(rel){
    io.print(fullpath,"拷贝成功!")
    }
    }
    }
    ,false
    );
    var rel = fsys.copy("E:\test1","E:\test",0);
    if(!rel){
    console.print(lasterr(fsys.opError));
    }
    console.pause(true);

    错误代码124,查询微软帮助文档,说路径非法:

    这跟我之前用fsys.isDir()测试一些目录,有时通过,有时不通过情况一样。
    小结现在测试的一些情况:
    1、win10测试经常有问题;win11没发生问题。
    2、win10,用enum一下,就没问题;单独用copy就有问题。


    IP属地:广东4楼2022-09-07 10:32
    回复
      我知道这是基本函数,不应该有啥问题,所以我也觉得奇怪。
      但是我在4楼的测试代码(完整代码)和截图,已经是矛盾的结果了。测试代码连续执行3个步骤:
      1、第一步:先用fsys.isDir()函数测试,"E:\test1"和"E:\test"两个目录,结果反馈不是目录。
      2、第二步:用enum函数遍历"E:\test1",把"E:\test1"的东西都拷贝到"E:\test",结果反馈拷贝成功。这个结果应该可以说明上面2个目录没问题。
      3、第三步:单独用fsys.copy()函数,把"E:\test1"拷贝到"E:\test",结果又报出错。
      我也不知道,为何我这里会这样


      IP属地:广东7楼2022-09-08 09:04
      回复
        人工创建目录,别人无法帮我检查。我用代码自己创建目录,结果还是有问题。完整代码如下:
        import console;
        import fsys;
        var test1 = "E:\test1";
        var test2 = "E:\test2";
        console.print("开始测试test1:")
        var ss1 = fsys.createDir(test1,true)
        console.print(type(ss1));
        console.print(ss1);
        if(ss1 == test1){
        console.print("test1创建路径与输入参数相同");
        }else {
        console.print("test1创建路径与输入参数不一样");
        }
        console.print();
        console.print("开始测试test2:")
        var ss2 = fsys.createDir(test2,true)
        console.print(type(ss2));
        console.print(ss2);
        if(ss2 == test2){
        console.print("test2创建路径与输入参数相同");
        }else {
        console.print("test2创建路径与输入参数不一样");
        }
        console.pause(true);
        结果如下图:

        test2创建是null?


        IP属地:广东8楼2022-09-08 10:01
        收起回复
          应该是这个问题导致的。
          \u202a 神奇的控制字符_小盼你最萌哒的博客-CSDN博客_\u202a
          在网页搜索:u+202a
          贴吧好像不能粘贴网址。


          IP属地:广东11楼2022-09-17 20:21
          回复