c# - 在用户未登录时将文件复制到映射的驱动器(计划任务)

标签 c# file io copy console-application

我的工作需要连接到两个文件共享并复制一些文件以供数据馈送。

源服务器在我们域的网络上,并且工作正常。然而,远程服务器让我窒息并抛出“无法找到路径的一部分”错误。我应该添加目标服务器与我的源服务器位于不同的域中。

从我的 app.config 文件中读取源路径和目标路径。

我认为持续映射驱动器会奏效,但由于这是一项计划任务,所以似乎行不通。我考虑过使用 NET USE,但那似乎不喜欢使用用户名和密码。

真正奇怪的是 - 如果我在登录机器时双击作业,它会成功运行。

示例代码:

DirectoryInfo di = new DirectoryInfo(srcPath);

        try
        {

            FileInfo[] files = di.GetFiles();

            foreach (FileInfo fi in files)
            {
                if(!(fi.Name.Contains("_desc")))
                {
                    Console.WriteLine(fi.Name + System.Environment.NewLine);
                    File.Copy(fi.FullName, destPath + fi.Name, true);
                    fi.Delete();
                }
            }
        }

显然这不像复制文件那么简单。关于在 C# 4.0 中使用凭据映射驱动器有什么建议吗?

编辑

我正在尝试使用从控制台应用程序调用的批处理文件,该文件在程序运行时映射驱动器。我会确定这在早上是否有效。

最佳答案

我建议研究合适的文件传输协议(protocol),例如 FTP。

假设这是不可能的,请尝试使用像 \\servername\path\file.txt 这样的 UNC 路径。您仍然需要凭据,但假设运行应用程序的帐户具有这些权限,您应该没问题。鉴于您提到了一个 web.config 文件,我猜那将是一个 ASP.NET 应用程序,因此我指的是在 IIS 中运行应用程序池的帐户。参见 http://learn.iis.net/page.aspx/624/application-pool-identities/

关于c# - 在用户未登录时将文件复制到映射的驱动器(计划任务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11670777/

相关文章:

c# - 基于 UCMA 的 VoiceXML - <goto> 和 <log> 标签

c# - 从事件更新 Viewmodel - PropertyChangedEventHandler 为空?

删除一行的 C 代码

c - 从常规文件 : block or return less data? 读取

c - fread 和 endianness : will fread(pointer, sizeof(some),1,file pointer) 有相同的结果吗?

python - 在 Python 中编辑文本文件中的特定行

c# - 如何在 C# 5.0 应用程序中嵌入 lua(或其他脚本语言)

c# - 如何重命名我的 c# 命名空间以包含一个点

java - 如何在 adf mobile 中创建文件

java - 在java中将文件放入链表中