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 操作文件实现方法小结



  • 相关阅读:
    Django of python 中文文档 及debug tool
    爬虫、网页测试 及 java servlet 测试框架等介绍
    python的分布式爬虫框架
    github 上 python 的优秀库推荐列表
    github 上 机器学习 的库推荐列表
    爬虫,如何防止被ban之策略大集合
    make menuconfig 时出现 mixed implicit and normal rules: deprecated syntax
    adb通过TCP/IP连接提示 unable to connect to *, Connection refused的解决方法
    Android中使用MediaCodec硬件解码,高效率得到YUV格式帧,快速保存JPEG图片(不使用OpenGL)(附Demo)
    ThinkCMF X2.2.2多处SQL注入漏洞分析
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470552.html
Copyright © 2011-2022 走看看