作者:朱金灿

来源: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:\mydocuments\letters\*.doc", "c:\tempfolder\"

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:\tempfolder"

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

调用FileSystemObject.CopyFile发生没有权限的错误的更多相关文章

  1. SQL2008、SQL2013 执行Transact-SQL 语句或者批处理时发生了异常。错误5120

    附加数据库的时候遇到问题,问题描述如下: 附加数据库 对于 服务器"服务器名"失败.(Microsoft.SqlServer.Smo) 执行Transact-SQL 语句或者批处理 ...

  2. C#解决微信支付Exception has been thrown by the target of an invocation(调用的目标发生了异常)的问题

    今天搭建微信扫码支付环境的时候,一样的配置参数,调用连接提示错误 错误:调用的目标发生了异常 然后跟踪到执行 MD5 md5 = System.Security.Cryptography.MD5.Cr ...

  3. 【顽固BUG】Visual Studio 2013 + TestDriven.NET-3.8.2860_Personal_Beta 调用的目标发生了异常。

    前言 突然怎么弄也无法断点调试了 输出如下: ------ Test started: Assembly: Server5.V2.dll ------ 调用的目标发生了异常. 而且网站运行提示: -- ...

  4. 【顽固BUG】Visual Studio 2015 + TestDriven.NET-3.8.2860_Personal_Beta 调用的目标发生了异常。

    前言 突然怎么弄也无法断点调试了 输出如下: ------ Test started: Assembly: Server5.V2.dll ------ 调用的目标发生了异常. 而且网站运行提示: -- ...

  5. 系统禁用执行FIPS政策导致程序发生“调用的目标发生了异常”

    工具是使用AES-256-CBC加密算法 问题 最近有客户反映, 在使用我们工具时候,会出现“调用的目标发生了异常”错误, 接到反馈之后, 我们进行了很多测试,甚至得到客户系统信息和framework ...

  6. IE下使用location对象有时会出现“没有权限”的错误

    http://jadyyang.blog.sohu.com/145340845.html ——————————————————————————————————————————————————————— ...

  7. C#解决System.Security.Cryptography.MD5.Create()调用的目标发生了异常)的问题

    今天搭建微信扫码支付环境的时候,一样的配置参数,调用连接提示错误 错误:调用的目标发生了异常 然后跟踪到执行 MD5 md5 = System.Security.Cryptography.MD5.Cr ...

  8. 未指定的错误,发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。数据类型不被支持。

    未指定的错误,发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息.数据类型不被支持. 博客分类: 雅芳生涯 .Net VB C# OracleMicrosoftSecurity  ...

  9. jenkins用户权限配置错误,导致登录时提示:没有Overall/read权限

    jenkins用户权限配置错误,导致登录时提示:没有Overall/read权限 由于初次接触jenkins,于是在搭建好jenkins以后,想要对用户进行管理,于是乎开始在系统管理->conf ...

随机推荐

  1. [Angular] Show a loading indicator in Angular using *ngIf/else, the as keyword and the async pipe

    The network may be unreliable and loading data may take time. Thus it is important to give the user ...

  2. [CSS] Use Generated Content to Augment Information

    When you create a pseudo element, you have access to the parent HTML attributes. They can be used in ...

  3. 关于JavaScript对象概念的总结

    原文 https://www.jianshu.com/p/88213b499c4b 大纲 前言 1.对象的相关概念 2.对象的创建(简单创建) 3.对象的属性 3.1.数据属性 3.2.访问器属性 4 ...

  4. 【24.67%】【codeforces 551C】 GukiZ hates Boxes

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  5. web.xml(8)_jsp-config

    13.jsp-config jsp-config元素主要用来设定JSP的相关配置,<jsp:config>包含<taglib>和<jsp-property-group&g ...

  6. mycat 离散分片 -&gt; 程序指定分区的分片

    1.程序指定分区的分片 此规则是在运行阶段有应用自主决定路由到那个分片. 此方法为直接依据字符子串(必须是数字)计算分区号(由应用传递參数.显式指定分区号). 2,加入配置文件 在function.x ...

  7. 离线下载chrome

    https://gallery.technet.microsoft.com/Google-Chrome-version-f0619a1f

  8. 有关下拉列表、复选框、单选按钮、iframe等jquery处理方法

    1.jquery验证复选框互斥选项,代码如下: //验证复选框中的互斥选项 function checkData(name, val1, val2){ //获取所有checkbox值 var chec ...

  9. 我眼中的c++编程总结-20150602

    断断续续的学习了非常多东西,有51.Avr.ARM.PLC.C\C++.C#.TB.MC.mql4.linux....等等,近乎填鸭或者囫囵吞枣的.甚至饿狼般的扑到里面,慢慢的积累和理解中,非常多知识 ...

  10. [tmux] Enable mouse mode in tmux

    We'll learn how to use mouse mode in tmux, including enable mouse control for resizing, scrolling an ...