我想将一个文件夹移动到服务器中的另一个文件夹。在本地,我的代码可以成功运行。但是在现场主机中,它不起作用。它与权限有关吗?
代码示例
string from = Server.MapPath(MainRoot + values[1].ToString());
string to = Server.MapPath(MainRoot + newFolderPath);
Directory.Move(from, to);
如果您无法在服务器中调试它,只需尝试在代码中添加一些验证以检查发生了什么。做这样的事情:
try
{
string from = Server.MapPath(MainRoot + values[1].ToString());
string to = Server.MapPath(MainRoot + newFolderPath);
if(!Directory.Exists(from) || !Directory.Exists(to))
{
Throw new Exception("One of the directories doesn't exist");
}
Directory.Move(from, to);
}
Catch(Exception ex)
{
File.WriteAllText("Error.txt", ex.Message);
}
执行后检查 Error.txt 以查看发生了什么。如果其中一个目录不存在,它将抛出异常,如果无法为权限完成 IO 操作,它也会抛出异常。只需检查日志。
编辑:
现在您已经找到了异常,在运行时创建目录:
if(!Directory.Exists(from))
{
Directory.Create(from);
}
if(!Directory.Exists(to))
{
Directory.Create(to);
}