使用 c# 在网络中移动目录
Posted
技术标签:
【中文标题】使用 c# 在网络中移动目录【英文标题】:Move a directory across a network using c# 【发布时间】:2012-06-20 10:32:19 【问题描述】:我有一个文件夹 A,我想将它从我的计算机移动到网络上的服务器。
我尝试过Directory.Move(A,Server)
,但因为它们没有相同的根,所以它不起作用。
File.Copy(A,Server)
将不起作用,因为该文件夹是只读的并且无法更改权限。
提前致谢。
编辑 包含代码
string copyFrom = @"folder";
string copyTo = @"\\server\Libraries\Documents";
string destinationPath = Path.Combine(copyTo, Path.GetFileName(copyFrom));
File.Copy(copyFrom, destinationPath);
这是我目前使用的代码。
编辑 2
我的电脑和服务器在不同的域。
【问题讨论】:
你的意思是服务器路径是只读的。如果是的话,你怎么能想到使用 File.Copy 或 Directory.Move。你必须使文件夹可写 否 我要移动/复制的文件夹是只读的。否则,File.Copy
会起作用
为什么不直接使用XCOPY?
robocopy 可以很好地解决网络问题
【参考方案1】:
正如@Tigran 建议的那样,您可以将 cmd 与 xcopy 一起使用(如果您愿意,也可以使用 robocopy)。
试试这个:
ProcessStartInfo Info = new ProcessStartInfo();
Info.Arguments = "/C xcopy C:\A \\server\A /I /E /Y";
Info.WindowStyle = ProcessWindowStyle.Hidden;
Info.CreateNoWindow = true;
Info.FileName = "cmd.exe";
Process.Start(Info);
【讨论】:
有没有一种简单的方法可以登录服务器?? @ELSheepO 我不明白你的意思?Logon failure: unknown user name or bad password.
运行代码时出现此异常。
抱歉,我的意思是从 cmd 运行 xcopy
命令,它可能会让您更好地了解哪里出错了。 VS 错误将与 cmd 报告的不同。
当我使用服务器的ip和服务器名称\\server\c:\folder_test
时,它给了我一个invalid drive specification
以上是关于使用 c# 在网络中移动目录的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 桌面应用程序和移动(android)设备之间通过本地网络进行通信? [关闭]