该进程无法访问该文件,因为它正由另一个进程使用.文件复制

本文关键字:文件 进程 另一个 复制 因为 访问 | 更新日期: 2023-09-27 18:36:56

>我正在尝试将 png 文件复制到我的项目文件夹的一部分,但是当我尝试时出现此错误。

该进程无法访问文件"....../图像.png,因为它正由另一个进程使用。

我可以向您保证,没有其他程序正在访问该文件,并且我关闭了所有 winforms 设计器窗口以及任何其他应用程序或窗口。

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

区域资源导入函数

    private void button_ImportAsset_Click(object sender, EventArgs e)
    {
        // Default to the directory which contains our content files.
        string assemblyLocation = System.Reflection.Assembly.GetExecutingAssembly().Location;
        string relativePath = Path.Combine(assemblyLocation, "../../../../Content");
        string contentPath = Path.GetFullPath(relativePath);
        openFileDialog1.InitialDirectory = contentPath;
        openFileDialog1.Title = "Load Asset";
        openFileDialog1.Filter = "PNG Files (*.png)|*.png|" +
                            "DDS Files (*.dds)|*.dds|" +
                            "BMP Files (*.bmp)|*.bmp|" +
                            "All Files (*.*)|*.*";
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            // Creates new png version.
            string newFileName = ((openFileDialog1.FileName));
            string filename = openFileDialog1.FileName;
            File.Copy(filename, newFileName, true);
            // Creates new xnb version.
            string outFileName =
            STATIC_CONTBUILDER.BuildXNBFromFile((openFileDialog1.FileName));
            // Copies the asset from the temporary build directory to the assets directory.
            File.Copy(
                Path.Combine(STATIC_CONTBUILDER.contentBuilder.OutputDirectory, outFileName),
                Path.Combine(STATIC_CONTBUILDER.pathToContent, outFileName),
                true);
        }
        Do_Refresh_XNB_Asset_List();
    }
    private void Do_Refresh_XNB_Asset_List()
    {
        listBox_Assets.Items.Clear();
        string[] lst_Files =
        Directory.GetFiles(STATIC_CONTBUILDER.pathToContent, "*.xnb", SearchOption.TopDirectoryOnly);
        for (int i = 0; i < lst_Files.Length; i++)
        {
            listBox_Assets.Items.Add(
                Path.GetFileNameWithoutExtension(
            lst_Files[i]));
        }
    }
    #endregion

该进程无法访问该文件,因为它正由另一个进程使用.文件复制

您似乎正在自行复制文件。

string newFileName = openFileDialog1.FileName;
string filename = openFileDialog1.FileName;
File.Copy(filename, newFileName, true);