我有代码将文件从一个位置传输到网络驱动器。源位置可能是我的电脑或其他网络驱动器。我正在使用.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);
答案 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);
}
然后,您将获得更多信息来帮助进行故障排除。