问题标签 [getfiles]

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 投票
8 回答
96516 浏览

c# - 当 Directory.GetFiles() 被拒绝访问时忽略文件夹/文件

我正在尝试显示在所选目录(以及可选的任何子目录)中找到的所有文件的列表。我遇到的问题是,当 GetFiles() 方法遇到无法访问的文件夹时,它会引发异常并且进程停止。

如何忽略此异常(并忽略受保护的文件夹/文件)并继续将可访问文件添加到列表中?

0 投票
3 回答
3974 浏览

c# - Directory.GetFiles 有效,Directory.GetDirectories 不在同一目录上

我的 Web 应用程序上有一个简单的文件选择器,它使用 Directory.GetFiles 和 Directory.GetDirectories 来生成 UI。这在我的本地主机上完美运行,但是当我将它上传到我的 Windows Server 2003 主机时,我只能看到文件 - 在同一目录上,GetFiles 有效,但 GetDirectories 无效。

代码非常简单 - 字符串 dir 由 Server.MapPath 调用创建,然后:

我已经尝试了所有我能想到的安全方面的事情;甚至可以让“每个人”完全访问 Web 根目录中的所有目录,即使这样也没什么区别。

因此,如果问题不在于安全性,我将非常感谢一些建议以尝试更多尝试!

更新:我很愚蠢 - 吐出 HTML 的代码包含一些非常古老的测试代码,这些代码对本地没有任何影响,因此没有被注意到和删除,但这导致服务器上的每个目录都被忽略!它以前如何?

在服务器上,所有站点都位于由其域命名的文件夹中 - 在本地,它们不是。我==愚蠢。对不起大家!

0 投票
6 回答
36342 浏览

c# - UnauthorizedAccessException 无法解决 Directory.GetFiles 失败

Directory.GetFiles 方法在第一次遇到它没有访问权限的文件夹时失败。

该方法抛出一个 UnauthorizedAccessException (可以被捕获),但是当它完成时,该方法已经失败/终止。

我正在使用的代码如下所示:

据我所知,没有办法事先检查某个文件夹是否定义了访问权限。

在我的示例中,我正在通过网络在磁盘上进行搜索,当我遇到仅根访问权限的文件夹时,我的程序失败了。

0 投票
3 回答
9288 浏览

vb.net - VB.NET:GetFiles 方法 - “访问路径 'G:\System Volume Information' 被拒绝。”

这是我的代码,

我用谷歌搜索,发现我需要更改我的应用程序的权限 Project properties > View UAC Settings > and change level to level="requireAdministrator"

但它也不起作用。我发现了一些关于FileIOPermission类的东西,但不知道如何实现它。

==> 详细代码。

Path 是一个包含所需路径的字符串,在这种情况下G:\

0 投票
2 回答
1641 浏览

.net - Directory.GetFiles 一次返回一个文件吗?(。网)

我有一个包含太多文件的文件夹,我想一个一个地浏览每个文件。问题是 Directory.GetFiles 返回一个完整的数组,这需要太长时间。

我宁愿有一个指向文件夹的对象,然后调用一个函数来返回文件夹中的下一个文件。请问.NET有这样的课程吗?

(我宁愿避免使用 win32 互操作,因为我也打算在 Mono 上使用它。)

非常感谢。

0 投票
2 回答
5058 浏览

c# - 在使用表单身份验证登录时使用 WindowsIdentity 获取 ASP.NET 中的文件/目录列表

编辑 7:
我猜这毕竟不能完成,可能需要使用某种命令行应用程序来执行此操作并解析输出,尽管我预计当很多人访问时这可能会很慢文件夹和/或达到 NetBIOS 会话限制。

编辑 6:
使用 Windows 集成身份验证(使用有权访问共享和数据库的帐户),我可以获得文件/目录列表。但是,刷新页面并获得一个UnauthorizedAccessException. 可能是 NetBIOS 或 ActiveDirectory 限制。

5 个月了,除了“使用模拟”(似乎是通过 P/Invoke,因为内置的 .NET 方式似乎很不稳定)之外,仍然没有解决方案,但这也会有同样的问题。硬编码用户名/密码不是一种选择。

开发(Windows 7)框(使用 IIS 或 Visual Studio 的)内置 Web 服务器)工作正常..

编辑 5:
根据我在互联网上和这个问题中所读到的内容,唯一可行的方法是:

  • 基本认证
  • 冒充
  • 将文件与 Web 应用程序放在同一台服务器上

这些都不是一个选项

  • 用户每次都必须登录 - 缺点:额外的进入障碍,应该是无缝体验
  • 用户名和密码硬编码 - 缺点:密码更改,用户编码(asp.net 帐户)将无法访问文件
  • Web 服务器上要存储的文件太多,磁盘空间不足

由于必须有可以访问 UNC 共享文件的 Windows 窗体应用程序,我原以为这会起作用。那,以及当远程连接到 Web 服务器并使用 Windows 资源管理器时,我可以访问这些文件的事实。

也许 ASP.NET/IIS 安全性会阻止它在没有通过 P/Invoke 模拟的情况下工作。或者可能被防火墙阻止?

编辑 4:
确实有效的一件事是使用基本身份验证 - 集成 Windows 身份验证和摘要式身份验证没有。但是,这并不是一个真正的选择,因为密码是以明文形式发送的,并且用户在访问页面时会得到提示(这不是我想做的事情)。

编辑 3:
无论我尝试什么,我都无法获得 UNC 路径上的文件或目录列表(这些的组合和单独打开)

  1. 给予“每个人”对该文件夹的完全访问权限(不仅仅是读取)
  2. 给定 ASP.NET 帐户“作为操作系统的一部分”
  3. 给定 IIS_WPG 组“作为操作系统的一部分”
  4. 用过的<authentication mode="Windows" />
  5. 用过的<identity impersonate="true"/>

如果我使用与登录站点相同的帐户远程连接(使用 RDP)到服务器,则可以正常访问文件。它只是不能通过代码工作。

编辑2:
我尝试过的是:

  1. 打开 Windows 身份验证:文件只能在同一台机器上访问(不是 UNC 共享),无法连接到数据库
  2. 打开表单验证,可以连接到数据库但不能访问文件(由于InvalidCastException身份现在是一个GenericIdentity

我无法使用 Windows 身份验证,因为我无法添加角色。我不想提示输入用户名/密码,因为这是一个额外的步骤,而且它不是通过安全连接(即 SSL)。此外,我不能让 ASP.NET 帐户访问这些文件(因为我不是域管理员)。

编辑:
路径是 UNC 路径,不在本地 PC 上。

使用表单身份验证,当我尝试在 Visual Studio 中将当前用户身份转换为 aWindowsIdentity并进行调试时,我得到一个InvalidCastException. 我只是有:

然后我得到的错误是:

我正在使用模拟来获取文件列表,因为 ASP.NET 帐户无权访问这些文件。它在使用 IIS 时有效,但在 Visual Studio 中无效:

添加<identity impersonate="true" />web.config不会做任何事情 - 虽然我不想这样做,因为我使用 ASP.NET 帐户来查询数据库,用户没有访问权限(导致Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON')。

当我通过 web.config 打开 Windows 身份验证时,我会UnauthorizedAccessException尝试从远程共享中获取文件列表(如果我以客户端 PC 上的同一用户身份远程连接到 IIS 框,我可以访问该文件列表)。

此外,ASP.NET 帐户是在 Active Directory 中设置的帐户,而不是 IIS 本地帐户。

0 投票
2 回答
47 浏览

php - 如何使用 PHP 从密码区域获取文件

我想制作一个脚本,该脚本将 URL 导入文件并将该文件导入我的 Web 服务器中的特定文件夹如何请求文件,如果它位于密码区域,我有一个帐户“用户名/密码”,但如何我向那个文件提出请求?

0 投票
2 回答
9782 浏览

c# - 获取执行代码所在目录

我知道在执行我的代码的同一目录中,一些文件位于。我需要找到它们并传递给另一种方法:

所以我打电话System.IO.Directory.GetFiles(path, "*.dll")。但现在我需要知道路径:

但是还有更短的方法吗?

0 投票
2 回答
2676 浏览

c# - 寻找加载显示文件夹缩略图的列表视图的最佳方式

我有以下代码

该代码使用 jpg 文件中的图片填充 System.Windows.Forms.ImageList。它还创建了一个 System.Windows.Forms.ListView,其中每个项目都与 imagelist 中的图片相关联。

我使文件变小并尝试优化代码。然而,对于 290 ~30k jpg 文件(或任何其他格式),我的时间不能低于 3 秒。

您有更好的方法来加载列表视图吗?

0 投票
7 回答
136537 浏览

c# - GetFiles with multiple extensions

Possible Duplicate:
Can you call Directory.GetFiles() with multiple filters?

How do you filter on more than one extension?

I've tried: