问题标签 [system.io.directory]

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 投票
2 回答
961 浏览

c# - C# - 检查是否可以访问/读取文件夹

在结束我的问题之前,请查看我检查的内容,并且在这个问题的末尾不起作用


问题

我一直在尝试各种 SO 答案,所有这些都给我带来了一个例外,除了其中许多听起来过于复杂,因为它应该非常简单。

如何在执行之前检查我是否有权枚举文件夹的内容?(我不想尝试/捕获,因为我正在遍历文件系统并且多次尝试/捕获会影响 C# 的性能)

每当我尝试以下操作时:

我得到这个例外:

mscorlib.dll 中出现“System.UnauthorizedAccessException”类型的未处理异常
附加信息:O acesso ao caminho 'e:\$RECYCLE.BIN\S-1-5-18' foi negado。
translation:“访问路径 'e:\$RECYCLE.BIN\S-1-5-18' 被拒绝”


什么不起作用:

1:

当我这样做时,代码进入if并在遇到枚举时抛出相同的异常。

2:

以下引发异常:

例外:

mscorlib.dll 中发生了“System.Security.AccessControl.PrivilegeNotHeldException”类型的未处理异常
附加信息:O processo não possui o privilégio 'SeSecurityPrivilege' necessário para esta opacão。
translation:该进程没有此操作所需的“SeSecurityPrivilege”特权。

与:

例外:

在 mscorlib.dll 中发生类型为“System.UnauthorizedAccessException”的未处理异常
附加信息:Tentativa de execução de uma operação não autorizada。
translation: 试图执行未经授权的操作

3:

试过:

与上述相同的例外。

0 投票
1 回答
38 浏览

.net - One Drive 文件夹的 .NET Directory.Move() 失败

对于通话:

抛出异常:

为什么这不起作用?我能做些什么来解决它?

0 投票
1 回答
39 浏览

c# - 我正在尝试使用属性和字符串填充列表

我正在尝试使用属性名称和值填充列表,这是我的代码到目前为止...

我这样称呼它......

我正在尝试像这样访问属性...

返回 FolderArrayList 时出现以下错误...

无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.List”

在文件夹中。名称我得到以下错误...

“字符串”不包含“名称”的定义

任何人都可以帮助指导我如何解决这个问题吗?

0 投票
0 回答
136 浏览

c# - DirectoryInfo.EnumerateFiles() 结果在 Ubuntu 上为空

我正在查看 System.IO 并编写了一个小方法来计算目录中的文件数。我遇到的问题是,当我在 Windows 中调试这段代码时,当我将鼠标悬停在集合上时,我可以枚举集合。这是 Windows 上 Visual Studio 中的代码和图像。

调试时的文件枚举

这是有问题的代码:

这是我在 ubuntu 上运行相同的代码行时得到的结果:

在 ubuntu 中运行代码时出错

有人可以帮我理解这里发生了什么吗?这两个文件夹中都有文件,权限不是问题,因为我正在使用我的主目录 (\home\user\Downloads\Videos) 中的一个文件夹。文件夹名称不是问题,因为我已经检查过了。

0 投票
1 回答
49 浏览

asp.net-core - 访问我的项目根目录中的文件夹 - ASP.NET Core 3.1

我有一个名为的根文件夹TestLogging,其中包含一个解决方案。我有一个控制台应用程序,它有自己的目录,还有一个测试项目,它也有自己的目录。

在 Windows 资源管理器中,我在根文件夹中手动创建了一个名为 Configuration 的目录TestLogging,其中有一个xml名为Configuration.config.

我正在尝试通过代码访问此路径以引用此文件,而不必使用此文件的绝对路径。

我已经尝试过使用here的各种示例System.IO,它们都指向正在运行的当前项目的构建目录,例如MyConsoleApp\bin\Debug\netcoreapp3.1

以下是我尝试过的一些事情:

如果已重复,请提前申请。

0 投票
0 回答
30 浏览

asp.net-core - Problem Referencing a File from a Project in another Project - ASP.NET Core 3.1

I have 3 projects in a solution, one is a ConsoleApp, the other two are a MyLibrary class library with one class, and a xUnit test project called Tests

I have also created a Configuration file in the ConsoleApp

The single class in the class library MyLibrary gets a reference to the configuration file in ConsoleApp and if you run the ConsoleApp the code works, but if you run the Tests it fails because the path changes to the Tests.

Here is the ConsoleApp:

Here is the single class in the class library:

Here is the class from the Tests:

I am guessing I can hardcode an absolute path string to the Configuration.config in the ConsoleApp in File.OpenRead("c:\Users\......") but I do not feel this is the right thing to do.

One way I got around this problem for now is to copy the Configuration.config into the Tests project, but again this does not feel like the right thing to do.

Is there a cleaner better solution out for this?

The current exception for this is:

Which does make sense with my current code.

0 投票
1 回答
65 浏览

c# - 使用 shell32 获得的便携式 USB 设备路径 - 路径中的字符无效

我正在寻找一种方法来访问通过 USB 电缆连接的智能手机上的文件,使用标准的System.IO东西,比如DirectoryStreamReader.

使用以下代码,我获得了一条通往我的 USB 设备的非常邪恶的路径:

这让我有一条像::{20D0AAAA-AAAA-AAAA-AAAA-0800AAAAAAAA}\\\?\usb#vid_12d1&pid_107e&mi_00#6&aaaaaaa&0&0000#{6ac2aaaa-aaaa-aaaa-aaaa-f98faaaaaaaa}. 我可以将它粘贴到 Windows 资源管理器地址栏中,它会重定向到类似This PC\Samsung\Internal Storage.

显然我不能用这条路做任何事情,例如Directory.GetFiles()因为我得到InvalidPathException.

如何从这样的路径访问文件?

0 投票
1 回答
47 浏览

c# - 如何将数组中的所有文件路径移动到一个目录

这是我尝试过的

但是,由于某种原因,它对我不起作用,它给了我一个错误。有谁知道如何做到这一点?

0 投票
0 回答
83 浏览

c# - 复制后删除文件会杀死应用程序

我在使用FileInfo.Delete()Directory.Delete(path, true)复制文件夹时发现了一个非常奇怪的错误。

问题:

  • 递归复制包含许多文件和一些子文件夹的文件夹
  • 尝试递归删除原文件夹
  • 恰好在文件夹内的第三个文件上,应用程序将崩溃而不会抛出Exception
  • 它并不总是同一个文件,因为前两个被正常删除,第三个失败。(如果我再试一次,第一个将是最后一个失败的,并且会成功删除)

再生产:

WPF应用程序中,具有以下方法的按钮会导致崩溃(稍后我将尝试在控制台应用程序中重现):

递归复制或删除:(
我知道Directory.Delete(path, true)存在,但它也失败了,我创建了递归删除来检查发生了什么)

重要细节:

  • 这是一个“错误再现”代码。原来的应用比较大,复制和删除之间有与用户的交互。这种“复制和删除”不是应用程序的正常流程,但用户可以通过调用应用程序的两个不同命令来做到这一点
  • 在用户单击复制和单击删除之间,应用程序完全响应有一个时间间隔。复制操作在用户可以做任何其他事情之前完成。
  • 如果只调用delete命令不会出现问题,如果先有副本就会出现问题
  • 我尝试释放资源,但似乎无法用于FileInfoand DirectoryInfo。无论如何,我尝试尽快将所有内容设置为 null ,但没有成功。
  • 没有Exception抛出,应用程序完全崩溃
  • 所有文件都可以访问,没有一个是只读的
  • 视窗 10
  • 使用 C# 的 WPF 应用程序
  • Visual Studio 2017 调试(问题发生在步进与否)
0 投票
0 回答
16 浏览

system.io.directory - 系统 io 目录未找到异常

fastColoredTextBox1.Text = File.ReadAllText($"./scripts/{listBox1.SelectedItem}"); 在此处输入图像描述