繁体   English   中英

将文件复制到创建的目录中

[英]Copy a file into a created directory

我正在一个项目中,我希望根据文本字段值生成目录,并且想要将文件复制到创建的文件夹中...到目前为止,我可以创建目录并复制文件,但可以复制到已创建文件夹...。

try
{
    string id = textBox4.Text.Trim();
    // Directory.CreateDirectory("C:\\Users\\prashan\\Desktop\\"+id);
    string source = null;                 

    OpenFileDialog ofd = new OpenFileDialog();

    if (ofd.ShowDialog()==System.Windows.Forms.DialogResult.OK)
    {
        source = ofd.FileName;
        MessageBox.Show(source);
    }

    string File_name = Path.GetFileName(source);

    string destination = "C:\\Users\\prashan\\Desktop\\" +
        System.IO.Directory.CreateDirectory(id) + File_name;

    System.IO.File.Copy(source, destination);
    MessageBox.Show("Done....");
}
catch (Exception ex)
{
    MessageBox.Show(ex.StackTrace);
}  

您有以下代码:

string destination = "C:\\Users\\prashan\\Desktop\\" 
    + System.IO.Directory.CreateDirectory(id) + File_name;

您正在将CreateDirectory()的结果串联到目标文件名中,这是不正确的。 相反,您可以将其分为两个操作,如下所示:

System.IO.Directory.CreateDirectory("C:\\Users\\prashan\\Desktop\\" + id);
string destination = "C:\\Users\\prashan\\Desktop\\" + id + "\\" + File_name;

这不是最干净的方法,使用Path.Combine()会更好,但是我想尽可能少地更改代码。

您的代码中的微小变化。 修改了目标路径以使其成为有效路径。

try
        {
            string id = textBox4.Text.Trim(); 
            Directory.CreateDirectory("C:\\Users\\prashan\\Desktop\\"+id);
            string source = null;
            OpenFileDialog ofd = new OpenFileDialog();

            if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                source = ofd.FileName;
                MessageBox.Show(source);

            }

            string File_name = Path.GetFileName(source);

            string destination = "C:\\Users\\prashan\\Desktop\\" + id +"\\"+ File_name;


            System.IO.File.Copy(source, destination);
            MessageBox.Show("Done....");

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.StackTrace);
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM