【问题标题】:copy media files from one folder to another, but rename the files将媒体文件从一个文件夹复制到另一个文件夹,但重命名文件
【发布时间】:2018-12-12 00:22:22
【问题描述】:

我想在我的游戏管理器中有一个“克隆”游戏的功能。到目前为止,除了克隆游戏媒体之外,我已经完成了所有克隆工作。

我希望媒体像这样克隆/复制:

basePath + gameId + mediaFile

所以一个简单的例子应该是这样的:

--- original game
c:\inetpub\wwwroot\spac_rpg\MediaFiles\12\33d43636-275b-4b92-8778-cf591829103e.png
c:\inetpub\wwwroot\spac_rpg\MediaFiles\12\57ea0ad8-c69a-45e7-951e-d0325aa404ab.mov

变成

--- new clone of the game (notice the different gameIds and the different GUID Ids for the media)
c:\inetpub\wwwroot\spac_rpg\MediaFiles\13\4427a554-b6a7-457a-b5ff-7c7cb7aee5bb.png
c:\inetpub\wwwroot\spac_rpg\MediaFiles\13\e9371c5d-eb47-4014-8380-204f7aff44fb.mov

到目前为止,我有这个,数量不多,但我有点不知道下一步该去哪里:

' copy each media file to new folder with new name

' new and old media file IDs
Dim newMediaId As Guid
Dim oldMediaId As Guid
Dim oldGameId As Int

' base path for game media
Dim basePath = "C:\inetpub\wwwroot\spac_rpg\MediaFiles\"

' new media folder
Dim newMediaFolder = Directory.CreateDirectory(basePath & newGameId)

' XXX ds is a dataset that is returned from the database with the old and new mediaIDs
For Each dr As DataRow In ds.Tables(0).Rows

    oldMediaId = dr("oldMediaID")
    newMediaId = dr("newMediaID")

    Dim oldFile = (basePath & oldGameId & "\" & oldMediaId)
    Dim clonedFile = (basePath & newGameId & "\" & newMediaId)

Next

或者也许我想把它分解成很多东西,并且有一种更简单的复制方法?

我只需要确保创建了具有新 GameId 的新文件夹,并且使用从数据库调用返回的 newMediaId 克隆了每个新媒体文件。

谢谢!

【问题讨论】:

  • 我认为您正在寻找评论。看起来不错,除了您可以使用 System.IO.Path 但没有必要外,我没有发现任何问题。当一切都完成并正常工作后,您可以在 codereview.stackexchange.com 上发帖
  • 您可以使用 File.copy 在目录之间复制文件。
  • @preciousbetine 不会保持文件名相同吗?我想要不同的 GUID
  • @the_lotus 好吧,我不知道如何进行实际的复制...就像复制文件,但要使用新文件名的新文件
  • 您可以通过 File.copy 命令更改文件名

标签: asp.net vb.net


【解决方案1】:

System.IO.File.​Copy 可以为您复制。它将源文件和目标文件(可以不同)作为参数)。

System.IO.File.​Copy(oldFile, clonedFile)

【讨论】:

  • 如何获取旧文件的文件扩展名?谢谢!
  • @SkyeBoniwell Path.​Get​Extension ?如果您想在事先不知道路径的情况下归档路径,那将是一个不同的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-22
  • 2013-11-30
  • 1970-01-01
  • 2023-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多