c# - 使用模拟 C# 将文件复制到共享驱动器
问题描述
我想将文件复制到共享文件夹。我可以手动复制文件,但我想安排它每小时运行一次。
首先我制作了一个批处理文件:
xcopy "D:\DATA\file.bak" "\\SharedFolder\DATA\"
它显示文件已被复制,但共享文件夹中没有任何内容。
接下来我尝试使用File.Copy
,但没有按预期工作。我发现我需要为此拥有一个用户身份。
所以,这是我的代码:
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
IntPtr user = IntPtr.Zero;
bool loggedon = LogonUser(
"User", //Username
"Domain", //Domain
"", // Password
2, // interactive
0, // default
out user);
if (loggedon)
{
using (WindowsIdentity.Impersonate(user))
{
File.Copy(Sourcepath, DestPath, true);
MessageBox.Show("Done");
}
}
else
{
MessageBox.Show("Failed");
}
但是这个帐户没有密码,所以我不知道在密码字段中输入什么。
还有其他方法可以模拟当前登录的用户吗?还是我需要设置密码?
解决方案
推荐阅读
- google-apps-script - 如何自动链接 Google 表单提交
- postgresql - 从表中选择列值与数组中的任何项目匹配的行
- python - 使用 Pandas 读取列数不规则的 CSV 文件
- jquery - 使用 jQuery 从 href 值中删除特定文本的正确方法
- python - 用户输入时如何从输出中排除“0”?
- mysql - 尝试调用 CTN 并将查询存储在变量中时出现“表不存在”错误
- ruby-on-rails - HAML Bootstrap 4 和 rails - 基于局部变量扩展手风琴
- c++ - 函数引用/初始化程序不起作用,它可能是什么?
- regex - MatchCollection 结果不一致
- javascript - 如何在不取回先前创建的 Elemnts 的情况下将新创建的 Li 添加到 Localstorage