【问题标题】:Saving file in folder and path in database将文件保存在文件夹中并在数据库中保存路径
【发布时间】:2012-09-17 09:56:38
【问题描述】:

我想将图像保存到一个文件夹中,并将该文件夹的路径保存到数据库中。

我已经使用File.Copy(filepath) 命令完成了此操作,但是当那里已经存在同名文件时它给了我错误。

这个命令的第二件事是我必须在其中提供一个文件名,它从中复制文件。如果我正在修改记录而不是图像,那么文件源不能为空会出错。

我也尝试过Picture1.image.save(filename),但我没有找到任何覆盖现有文件的命令。

请提供一种最简单的方法来帮助我完成这一切。

【问题讨论】:

  • 这听起来像是你的数据库设计的问题,如果它有重复的问题。这不应该是您的设计错误或访问数据库的方式错误。

标签: c#


【解决方案1】:

File.Copy() 方法有一个重载,该方法接受 bool,这将确定是否覆盖任何现有的同名文件。

http://msdn.microsoft.com/en-us/library/9706cfs5.aspx

【讨论】:

  • 先生,我不想使用 File.Copy 方法,因为它必须使用文件来保存图像。我已经写过,当我想修改数据而不是图像时,它会出错。我想从“Picture1.image.save(filename)”之类的图片框中获取参数,而不是从 OpenFileDialog 框中获取参数。谢谢
  • 我很难理解你的意思对不起。 File.Copy 与 OpenFileDialogBox 没有关联 - 您可以以任何您喜欢的方式派生目标和源参数 - 它们只是字符串。这回答了你的问题了吗?努力看看你坚持什么对不起。清楚地说明您希望用户能够做什么(确切的步骤)以及到目前为止它在什么时候失败,我可以更准确地帮助您。目前 - 考虑到您的问题,这听起来不像是您需要避免使用 File.Copy - 但就像我说的我不太明白。
【解决方案2】:

File.Copy(sourceFileName, destFileName, true) 将强制覆盖现有文件。

参考MSDN File.Copy

【讨论】:

    【解决方案3】:
    if(File.Exists(destinationFileName))
    {
      File.Delete(destinationFileName);
    }
    
    File.Copy(sourceFileName, destinationFileName);
    

    sourceFileName 应该是源文件的完整路径(包括文件名)。 destinationFileName 应该是您要保存文件的完整路径(包括文件名)。

    【讨论】:

      【解决方案4】:

      你要先检查文件是否存在?

      使用文件信息,

      FileInfo file = new FileInfo(location);
      if(file.Exists())
      {
      File.Delete(location);
      File.Copy(srcLocation, location);
      }
      

      这样可以避免错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多