Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 进程无法访问该文件,因为其他进程正在使用该文件。文件,复制_C#_Winforms_Copy - Fatal编程技术网

C# 进程无法访问该文件,因为其他进程正在使用该文件。文件,复制

C# 进程无法访问该文件,因为其他进程正在使用该文件。文件,复制,c#,winforms,copy,C#,Winforms,Copy,我试图将png文件复制到项目文件夹的一部分,但当我尝试复制时,出现了此错误 进程无法访问文件“…/Image.png”,因为另一进程正在使用该文件 我可以向您保证没有其他程序正在访问该文件,我已关闭所有winforms designer窗口以及任何其他应用程序或窗口 这是我正在使用的代码,我已经在这个网站上尝试了所有其他的答案,但没有任何效果,对此的任何帮助都将不胜感激 区域资产导入功能 private void按钮\u导入设置\u单击(对象发送方,事件参数e) { //默认为包含内容文件的目录

我试图将png文件复制到项目文件夹的一部分,但当我尝试复制时,出现了此错误

进程无法访问文件“…/Image.png”,因为另一进程正在使用该文件

我可以向您保证没有其他程序正在访问该文件,我已关闭所有winforms designer窗口以及任何其他应用程序或窗口

这是我正在使用的代码,我已经在这个网站上尝试了所有其他的答案,但没有任何效果,对此的任何帮助都将不胜感激

区域资产导入功能
private void按钮\u导入设置\u单击(对象发送方,事件参数e)
{
//默认为包含内容文件的目录。
string assemblyLocation=System.Reflection.Assembly.GetExecutionGassembly().Location;
字符串relativePath=Path.Combine(assemblyLocation,../../../../Content);
字符串contentPath=Path.GetFullPath(relativePath);
openFileDialog1.InitialDirectory=contentPath;
openFileDialog1.Title=“加载资产”;
openFileDialog1.Filter=“PNG文件(*.PNG)|*.PNG |”+
“DDS文件(*.DDS)|*.DDS |”+
“BMP文件(*.BMP)|*.BMP |”+
“所有文件(*.*)|*.*”;
如果(openFileDialog1.ShowDialog()==DialogResult.OK)
{
//创建新的png版本。
字符串newFileName=((openFileDialog1.FileName));
字符串文件名=openFileDialog1.filename;
File.Copy(filename,newFileName,true);
//创建新的xnb版本。
字符串输出文件名=
STATIC_CONTBUILDER.BuildXNBFromFile((openFileDialog1.FileName));
//将资产从临时生成目录复制到资产目录。
文件,复制(
Combine(STATIC_CONTBUILDER.contentBuilder.OutputDirectory,outFileName),
Path.Combine(STATIC_CONTBUILDER.pathToContent,outFileName),
正确的);
}
是否刷新资产列表();
}
私有无效Do_刷新_XNB_资产_列表()
{
listBox_Assets.Items.Clear();
字符串[]lst_文件=
目录.GetFiles(STATIC_CONTBUILDER.pathToContent,“*.xnb”,SearchOption.TopDirectoryOnly);
对于(int i=0;i
您似乎正在自己复制文件

string newFileName = openFileDialog1.FileName;

string filename = openFileDialog1.FileName;

File.Copy(filename, newFileName, true);

看起来您正在自己复制文件

string newFileName = openFileDialog1.FileName;

string filename = openFileDialog1.FileName;

File.Copy(filename, newFileName, true);

该异常消息仅对调试程序的用户准确。在开发时,它应该是这样的:“您无法访问该文件,您已经打开了它,可能忘记了使用Dispose()方法。”旁注:对于公共示例,请尽量避免使用ALL-CAPS命名约定(大多数C#命名指导原则建议对camelCase等标识符使用微妙的大小写),恐怕我的编程导师让我们这样命名这个类。Hans,我在开发时没有收到错误消息,因为错误只在生成代码时出现,并尝试将文件导入到我的winforms项目中,复制它的尝试失败,然后产生错误。该异常消息仅对调试程序的用户准确。在开发时,它应该是这样的:“您无法访问该文件,您已经打开了它,可能忘记了使用Dispose()方法。”旁注:对于公共示例,请尽量避免使用ALL-CAPS命名约定(大多数C#命名指导原则建议对camelCase等标识符使用微妙的大小写),恐怕我的编程导师让我们这样命名这个类。Hans,我在开发时没有收到错误消息,因为错误只在生成代码时出现,并且尝试将文件导入到我的winforms项目中,尝试复制失败,然后产生错误。在这个文件之后。copy(filename,newFileName,true);同样的错误也发生了,你需要提供另一个名字,正如上面写的,就是这个错误,6年后,同样的事情发生在我身上。不同的代码和不同的API,但我最终还是试图复制一个文件。上帝复制(filename,newFileName,true);同样的错误也发生了,你需要提供另一个名字,正如上面写的,就是这个错误,6年后,同样的事情发生在我身上。不同的代码和不同的API,但我最终还是试图复制一个文件。上帝