zoukankan      html  css  js  c++  java
  • 调用FileSystemObject.CopyFile发生没有权限的错误

    作者:朱金灿

    来源:http://blog.csdn.net/clever101

     

               最近编写一个JScript,在调用FileSystemObject.CopyFile发生没有权限的错误,具体如下图:

                   

          开始觉得这个错误挺诡异的,因为我是以管理员身份运行这个js的,怎么会没有权限呢?上网搜索了很多信息也没有找到答案。最后查了下MSDN,发现被错误信息误导了。MSDN是这样说的:

    CopyFile Method

    See Also

    Copy Method| CopyFolderMethod | CreateTextFileMethod | DeleteFileMethod | MoveFileMethod
    Applies To: FileSystemObjectObject

    Language

    • JScript
    • VBScript
    • Show All

    Copies one or more files from one location to another.

    object.CopyFile ( source, destination[, overwrite] )

    Arguments

    object

    Required. The objectis always the name of a FileSystemObject.

    source

    Required.Character string file specification, which can include wildcard characters, forone or more files to be copied.

    destination

    Required.Character string destination where the file or files from source are tobe copied. Wildcard characters are not allowed.

    overwrite

    Optional.Boolean value that indicates if existing files are to be overwritten. If true,files are overwritten; if false, they are not. The default is true.Note that CopyFile will fail if destination has the read-onlyattribute set, regardless of the value of overwrite.

    Remarks

    Wildcard characters can only be used in the last pathcomponent of the source argument. For example, you can use:

    [JScript]
    fso = new ActiveXObject("Scripting.FileSystemObject");
    fso.CopyFile ("c:\mydocuments\letters\*.doc", "c:\tempfolder\")
    [VBScript]
    FileSystemObject.CopyFile "c:mydocumentsletters*.doc", "c:	empfolder"

    But you cannot use:

    [JScript]
    fso = new ActiveXObject("Scripting.FileSystemObject");
    fso.CopyFile ("c:\mydocuments\*\R1???97.xls", "c:\tempfolder")
    [VBScript]
    FileSystemObject.CopyFile "c:mydocuments*R1???97.xls", "c:	empfolder"

    If source contains wildcard characters or destinationends with a path separator (), it is assumed that destination is anexisting folder in which to copy matching files. Otherwise, destinationis assumed to be the name of a file to create. In either case, three things canhappen when an individual file is copied.

    • If destination does not exist, source gets copied. This is the usual case.
    • If destination is an existing file, an error occurs if overwrite is false. Otherwise, an attempt is made to copy source over the existing file.
    • If destination is a directory, an error occurs.

    An error also occurs if a source using wildcardcharacters doesn't match any files. The CopyFile method stops on thefirst error it encounters. No attempt is made to roll back or undo any changesmade before an error occurs.


        通过阅读上面的接口说明,我发现我对FileSystemObject.CopyFile的接口的理解的。我以为可以这样用:比如我想把C:\src\1.cpp拷贝到D:\MyProject,代码是这样写:

    FileSystemObject.CopyFile("C:\src\1.cpp","D:\MyProject");

    实际上这是错误的,只能写成这样:

    FileSystemObject.CopyFile("C:\src\1.cpp","D:\MyProject\1.cpp");

           如果你想把src目录下所有cpp文件拷贝到D:\MyProject目录下,可以这样写:

    FileSystemObject.CopyFile("C:\src\*.cpp","D:\MyProject");

           看来以后遇到这样的问题第一步应该先查MSDN,不过微软的“没有权限”的错误提示也太坑爹了!


    参考文献:

     

    1.  javascript 操作文件实现方法小结



  • 相关阅读:
    java环境变量的配置
    usb转串口驱动时会出现“文件的哈希值不在指定的目录”这样的提示
    虚拟机安装tools for Ubuntu
    ubuntu 修改root密码
    旺旺自动回复
    android 启动流程
    ASCII 码表
    电脑中快速查找东西
    appengine 云计算。 部署web网络。
    openssl-0.9.8k_WIN32(RSA密钥生成工具
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470552.html
Copyright © 2011-2022 走看看