【问题标题】:Transfer a textfile to another folder将文本文件传输到另一个文件夹
【发布时间】:2019-11-22 04:54:44
【问题描述】:

我很困惑为什么我的代码不起作用。我想将我拥有的文本文件传输到另一个文件夹中。这是我的代码:

private void transferButton_Click(object sender, EventArgs e)
    {
        string acct = @"C:\\Users\\Accounting\\TicketQueue\\";
        string reg = @"C:\\Users\\Registrar\\TicketQueue\\";

        if (office == "Registrar")  
        {
            File.Move(reg, acct);
        } 
        else {
            File.Move(acct, reg);
        }

        cleanUp();
    }

office 变量是预先确定的。 (注册商或会计)

cleanup()方法用于清除整个表单并提示成功传输文件的消息。

每次单击按钮时都会显示错误消息:

其他信息:找不到文件“C:\Users\Accounting\TicketQueue\”。

【问题讨论】:

  • 您指定的路径与目录而非文件相关。您需要在 acct 和 reg 字符串中包含文件名,例如 "...\\file.txt"

标签: c# winforms file-transfer


【解决方案1】:

您实际上并没有指定文件名,只是一个文件夹位置。您是否知道文件的名称,或者您是否正在尝试传输整个文件夹的内容?代码需要类似于:

string acct = @"C:\\Users\\Accounting\\TicketQueue\\from.txt";
string reg = @"C:\\Users\\Registrar\\TicketQueue\\to.txt";

【讨论】:

  • 谢谢。这清除了错误,但不幸的是,发生了另一个错误。这次它说“正在被另一个进程使用”所以它不会移动。
  • 还有什么正在访问该文件?
  • 我也不知道。我认为这是因为我的 StreamReader,因为 Textfile 中的每一行都显示在我的 windows 窗体中的不同文本框中。
  • 是的,听起来你正拿着一个打开的文件句柄。您可能需要将文件读取到某个缓冲区,释放文件句柄,在需要时写回。
  • 基本上,当您读取文件时,请确保立即调用 StreamReader.Close() - 或将读取包装在“使用”子句中。将文件内容读入一个字符串 - 如果您希望每行有单独的文本框,则可能是一个字符串数组。当用户单击“转移”或其他任何内容时,请调用您的方法。这假设您是保留打开文件句柄的人,而不是其他进程。
猜你喜欢
  • 1970-01-01
  • 2012-03-14
  • 2018-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多