我正在编写ac#桌面应用程序,我希望用户从打开的文件对话框中选择一个文件,然后程序会将文件复制到应用程序从中执行的位置:这是我目前无法使用的代码< / p>
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
dataset = pd.read_csv("Startups (multiple linear regression).csv")
x=dataset.iloc[:,:-1].values
y=dataset.iloc[:,-1]
#Encode categorical variables (New York, California, Florida)
from sklearn.compose import ColumnTransformer, make_column_transformer
from sklearn.preprocessing import OneHotEncoder
preprocess = make_column_transformer((OneHotEncoder(),[-1]),remainder="passthrough")
x = preprocess.fit_transform(x)
现在我得到了
的错误该文件正在被另一个程序使用
。当我编辑通过删除true初始化副本的代码时:
var dlg = new Microsoft.Win32.OpenFileDialog {
Title = "Select File",
DefaultExt = ".json",
Filter = "Json File (.json)|*.json",
CheckFileExists = true
};
if (dlg.ShowDialog() == true)
{
try
{
var currentDirectory = System.Windows.Forms.Application.ExecutablePath;
var destFile = Path.Combine(currentDirectory + "/temp/", dlg.FileName);
File.Copy(dlg.FileName, destFile, true);
}
catch (Exception ex)
{
MessageBox.Show(string.Format("An error occured: " + ex.Message));
}
}
我得到
的错误文件已存在
从中选择它的目录中。
答案 0 :(得分:4)
似乎您要写入的路径不正确。
System.Windows.Forms.Application.ExecutablePath
本身返回 exe文件,而不返回目录。试试
var destFile = Path.Combine(
Path.GetDirectoryName(Application.ExecutablePath), // Exe directory
"temp", // + Temp subdirectory
Path.GetFileName(dlg.FileName)); // dlg.FileName (without directory)
如果不确定temp
是否存在,则必须创建它:
Directory.CreateDirectory(Path.GetDirectoryName(destFile));
答案 1 :(得分:2)
使用下面的代码将文件从一个文件夹复制到另一个文件夹。
string[] filePaths = Directory.GetFiles("Your Path");
foreach (var filename in filePaths)
{
string file = filename.ToString();
//Do your job with "file"
string str = "Your Destination"+file.ToString(),Replace("Your Path");
if (!File.Exists(str))
{
File.Copy(file , str);
}
}