问题标签 [filesystemobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2430 浏览

permissions - 通过经典 ASP 获取远程文件夹的大小

我正在尝试一些非常简单的事情,但我对此感到头疼。我很确定我在这里所拥有的只是一个我不知道如何解决的权限问题,但我可能是错的。

这是我的场景...我有 3 台服务器...

  1. 服务器 A - Web 服务器 (Windows 2003) - 启用匿名访问
  2. 服务器 B - 红 5 媒体服务器
  3. 服务器 C - NAS

服务器 A 上的网站允许将视频录制/上传到服务器 B,在该服务器 B 上处理/转码视频。然后,服务器 B 上的 Cron 作业将视频移动到服务器 C 进行存储。

然后,用户可以通过在 IIS 中设置的虚拟目录从服务器 A 观看他们的视频,该目录指向服务器 C 并作为域用户帐户连接。

我需要了解如何使用 ASP 文件系统对象来获取服务器 C 上包含视频的文件夹的大小。

我已使用 UNC 路径 (\servername\videos) 将服务器 C 上存储视频的文件夹的父文件夹映射到服务器 A 上的驱动器号。

我尝试使用 FileSystemObject 的 folderExists() 方法进行调试,如果我传入映射的字母驱动器或 UNC 路径,它会返回 false。它给出了一个找不到路径的错误。只是为了确保我对传递给 folderExists() 方法的路径进行了 response.write 并且它是正确的路径。所有这一切让我相信这确实是一个我不知道如何解决的权限问题。

谢谢,瑞安

0 投票
2 回答
3168 浏览

asp-classic - VBScript 的 CopyFile 不起作用

我认为这可能与外部文件有关,但我收到错误消息Path not found,不知道为什么。代码如下。

0 投票
3 回答
4287 浏览

javascript - Scripting.Filesystemobject filemove,writefile 在 IE 浏览器中无法使用 javascript(解决方法,文档?)

我知道在浏览器中使用来自 javascript 的 Scripting.Filesystemobject 是一个巨大的安全漏洞。我听说微软正在锁定最新版本的 Office 中的这个漏洞。这对于我正在开发的企业 Web 应用程序来说是个坏消息,它有一些关键功能取决于对 Scripting.Filesystem 对象的访问,例如写出 xml 文件或移动音频文件。

我已经尝试但未能找到任何关于此的“硬”文档,虽然我的本地开发盒表现出这种行为,但这里的其他机器(除了 IE 没有任何最新版本)没有表现出这种行为。如果有人可以向我指出确认这一点的文档 - 或者不涉及创建 activeX 控件的解决方法 - 我将非常感激。

谢谢!

0 投票
1 回答
1893 浏览

asp-classic - Server.CreateObject 的替代方案

我正在用经典的 ASP(在 Windows CE 上)编写导航系统。我需要一种基于调用脚本动态包含导航文件的方法。我想出了以下代码,其中包含位于调用脚本文件夹中的 nav.inc,以允许不同的文件夹具有不同的导航功能。

这在我的 Windows 测试机器上运行良好,但在我部署到 Windows CE 时却不行。代码和错误如下所示。如果有人可以提供解决方法或任何反馈,那就太好了。谢谢

代码:

错误:

Microsoft VBScript 运行时错误:'800a01b6'

说明:对象不支持此属性或方法:“Server.CreateObject”

如果我将代码更改为只说Set fs=CreateObject("Scripting.FileSystemObject")我收到以下错误:

Microsoft VBScript 运行时错误:“800a01ad”

说明:ActiveX 组件无法创建对象:“Scripting.FileSystemObject”

更新我刚刚尝试直接运行 Server.Execute ,这也失败了。看起来我没有任何访问 Server 对象的权限。有什么解决方法吗?

0 投票
2 回答
8276 浏览

vbscript - VBScript 捕捉错误变量值

我有一个 VB 脚本(.vbs 文件),它只是一个简单的驱动器目录列表。它将作为驱动器备份脚本的基础。但是当如下运行它时,我在某些文件夹上收到 Permission Denied 错误。我需要找到那个文件夹是什么,这样我就可以找出文件夹的问题所在。

给出错误的行是“For Each TempFolder In MoreFolders”。所以我想弄清楚的是如果出现错误,如何 WScript.Echo 当前路径(objDirectory)。

我不确定这是否重要,但以防万一,我得到的错误是第 12 行的 Permission Denied 800A0046。所以有些文件夹,我不知道是哪个文件夹,不让我看里面。

0 投票
2 回答
7109 浏览

asp-classic - FileSystemObject 的文件权限 - CScript.exe 是一回事,Classic ASP 是另一回事

我有一个经典的 ASP 页面 - 用 JScript 编写 - 使用 Scripting.FileSystemObject 将文件保存到网络共享 - 但它不起作用。(“没有权限”)

ASP 页面使用 Windows 身份验证在 IIS 下运行,并启用了模拟。

如果我通过 CScript.exe 在本地运行以下代码块:

我得到(预期的)输出:

如果我将相同的代码作为 .ASP 页面的一部分运行,将 Response.Write 替换为 WScript.Echo,我会得到以下输出:

现在 - 我的理解是 WScript.Network 对象将检索实际运行代码的线程的当前安全凭证。如果这是正确的 - 那么为什么同一个用户,在同一个域上,从 CScript.exe 与 ASP 得到不同的结果?如果我的 ASP 代码作为dylan.beattie运行,那么为什么我看不到网络共享?如果它不是作为 dylan.beattie 运行的,为什么 WScript.Network 会认为它是?

0 投票
3 回答
2564 浏览

vb6 - 使用 Windows 脚本运行时,尤其是其中的 FileSystemObject 是个好主意吗?

最近有人要求我对一个 VB6 应用程序进行一些维护。这涉及到一些文件 IO。我发现通过引用 windows 脚本主机和使用 FileSystemObject 提供的 IO 操作比 VB6 附带的 IO 操作友好得多。

但这是否会因为安全问题,或者因为脚本主机将在某些用户的计算机上被禁用而导致问题?

更新(2012 年 8 月 20 日):自从提出这个问题以来,我们在 3000 名客户中遇到了 3 次无法使用 scrrun.dll 的问题。我们必须通过远程支持手动修复这些问题。似乎有时病毒扫描程序是罪魁祸首。

0 投票
8 回答
17628 浏览

c# - 目录文件大小计算 - 如何使其更快?

使用 C#,我正在查找目录的总大小。逻辑是这样的:获取文件夹内的文件。总结总规模。查找是否有子目录。然后进行递归搜索。

我也尝试了另一种方法:使用 FSO ( obj.GetFolder(path).Size)。这两种方法在时间上没有太大差异。

现在的问题是,我在一个特定文件夹中有数万个文件,并且至少需要 2 分钟才能找到文件夹大小。此外,如果我再次运行该程序,它会很快发生(5 秒)。我认为 Windows 正在缓存文件大小。

有什么办法可以减少我第一次运行程序所花费的时间吗?

0 投票
1 回答
700 浏览

unicode - VBA 或 Vb 脚本:如何使用 FileSystemObject 写入 Unicode 文件

您将如何使用 FileSystemObject 将字符串写入 Unicode 文件?

0 投票
2 回答
2670 浏览

vbscript - vbscript中objLogicalDisk.DriveType的枚举值是指什么?

所以下面的代码:

用于获取系统上每个驱动器的磁盘类型。我想知道的是,返回的数字('3'、'4'、'5'等)指的是什么?在互联网上环顾四周,我发现他们应该在我的系统上的不同答案 - 根据互联网:

未知 = 0

Removable = 1 ' 可移动介质

Fixed = 2 ' 固定介质(硬盘)

Remote = 3 ' 网络驱动器

CDROM = 4' 光盘

RAMDisk = 5 ' RAM 磁盘

根据我到目前为止收集的数据,3 = 我的本地 C 驱动器,5 = 我的本地 D (DVD) 驱动器,4 = 网络驱动器。

如果有人可以帮助消除这种歧义,那就太好了:)