[英]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.