gpt4 book ai didi

C# Directory.Move 访问被拒绝错误

转载 作者:行者123 更新时间:2023-12-04 13:23:54 26 4
gpt4 key购买 nike

这有点棘手,希望我可以深入了解 Directory.Move 函数中内置的 C# 如何工作(或应该工作)。我编写了一个程序,该程序将早于特定日期的文件夹名称列表放入 DirectoryInfo 列表中,它会迭代该列表以将文件夹 move 到其他地方。

                foreach (DirectoryInfo temp in toBeDeleted)
{
filecheck.WriteLine(temp.Name);

Directory.Move(temp.FullName, @"T:\Transactiondeletions\" + counter + "\\" + temp.Name);
}

其中 temp.Fullname 类似于 T:\UK\DATA\386\trans\12345678.16

但是,当我运行该程序时,我遇到了拒绝访问错误。
enter image description here

T:在这种情况下类似于 10.11.12.13\Data2$
我有另一个映射驱动器 U:,它与 10.11.12.13\Data3$ 位于相同的 IP 上并且具有完全相同的目录结构。

关键是我的程序在 U 盘上运行得很好,但在 T 盘上却没有。我已经尝试将代码中的驱动器号作为带有 IP 的实际完整路径,它在 U 驱动器上仍然可以正常工作,但在 T 驱动器上却无法正常工作。

每当我的程序尝试 move 文件夹时,在 T 驱动器上,它都会遇到拒绝访问。

但是,它在以下情况下工作正常:
  • 我手动 move 文件夹
  • 我使用目录副本 + Directory.Delete 而不是 Directory.Move

  • 有任何想法吗?即使我可以手动 move 文件,我也不知道为什么它在这里不起作用,我尝试手动运行 .exe 并以管理员和同事的身份运行,但结果是一样的。

    我认为它可能与仍然打开的流编写器有关(文件检查),但我已经尝试 move 这部分代码,直到我关闭流编写器但它遇到了相同的错误,所以我已经“排除”了可能性。

    任何建议将不胜感激,如有必要,我将很乐意提供更多所需的信息。

    最佳答案

    对于 Directory.Move 操作不起作用,我仍然没有解决方案。但是我已经能够通过进入目录并使用 File.Move 将所有文件 move 到其他地方,然后使用 Directory.Delete 删除原始目录来解决这个问题。出于某种原因,它是这样工作的。但它会做!

    关于C# Directory.Move 访问被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43325099/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com