.net核心文件传输到网络位置

时间:2018-10-14 11:45:09

标签: c# asp.net-core

我有代码将文件从一个位置传输到网络驱动器。源位置可能是我的电脑或其他网络驱动器。我正在使用.NET Core 2.1和C#。我的代码与下面的MSDN示例类似。

问题是,当目标是我PC上的文件夹时,它工作正常,但是当它是如下所示的网络位置时,文件未移动到指定位置。尽管源中的文件确实被删除了,并且没有任何错误。

我已确保使用我登录的Windows帐户具有对网络位置的显式权限。我假设这是我的应用程序在其下运行的上下文。我也环顾四周,尝试进行模仿以明确使用具有权限的帐户,并发现了一些代码可以执行此操作,但这似乎在.net core中不起作用。

我想念什么?我该如何使用它?

string fileName = @"TestFile.txt";
string sourcePath = @"C:\users\myuser\docs";
string targetPath =  @"\\10.10.10.148\docs";

// Use Path class to manipulate file and directory paths.
string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
string destFile = System.IO.Path.Combine(targetPath, fileName);

// To copy a folder's contents to a new location:
// Create a new target folder, if necessary.
if (!System.IO.Directory.Exists(targetPath))
{
    System.IO.Directory.CreateDirectory(targetPath);
}

// To copy a file to another location and 
// overwrite the destination file if it already exists.
System.IO.File.Move(sourceFile, destFile, true);

1 个答案:

答案 0 :(得分:0)

将移动命令放在try catch块中,以查看返回的实际错误(如果有)。

try
{
    // To copy a file to another location and 
    // overwrite the destination file if it already exists.
    System.IO.File.Move(sourceFile, destFile, true);
}
catch (Exception ex)
{
    //show error message using appropriate method for 
    //Console Application
    Console.WriteLine(ex.Message);
    //OR Web Application //
    Response.Write(ex.Message);
    //OR WinForms Application
    MessageBox.Show(ex.Message);
}

然后,您将获得更多信息来帮助进行故障排除。