你能在.NET中的网络共享中移动文件/文件夹吗?

时间:2010-04-15 16:00:37

标签: .net

尝试这样做:

    Dim originalPath As String = "\\comp1\c$\target"
    Dim destinationPath As String = "\\comp2\c$\target"
    If Directory.Exists(path) Then
        Directory.Move(originalPath, destinationPath)
    End If

但它失败了。还有另一种方法可以达到同样的效果吗?

4 个答案:

答案 0 :(得分:5)

正如Barry所说,Directory.Move()确实not work across volumes - 两个不同的计算机(如您的示例所示)当然不符合相同的数量(可能是两个不同的股票在终点指向同一台计算机上的相同卷 - 但我不确定这里。)

首先执行Directory.CreateDirectory(targetpath),然后复制所有文件(使用Directory.GetFiles();根据需要递归创建子目录),当所有成功的文件在源路径上执行Directory.Delete()时。 / p>

您可能希望在网络上搜索现有实施。

请注意,这不是原子操作。因此,您可能需要考虑只能复制源目录的一部分的情况,将部分保留在目标中。

答案 1 :(得分:1)

您无法将目录移动到其他卷。

http://msdn.microsoft.com/en-us/library/system.io.directory.move.aspx

此外,您正在检查path是否存在 - 这是一个错字,因为您提供的代码中不存在路径?

答案 2 :(得分:0)

看看MSDN documentation。我会尝试点击异常,看看它失败的原因。

答案 3 :(得分:0)

我要回答......是的。您可以通过ASP.NET复制/移动文件/文件夹。

如果失败,通常会生成一个异常,告诉您有关错误的更多信息。我以前看过这些文件/文件夹副本的错误。

  1. 读取/修改源文件夹和/或目标文件夹的权限不足
  2. 其中一个网络路径无法解决(检查拼写错误,尝试完全符合条件)
  3. 源文件夹支持目标文件夹不支持的字符(即从Windows复制到SharePoint)
  4. 我们可以通过例外细节更好地帮助您。