asp.net - 将媒体文件从一个文件夹复制到另一个文件夹,但重命名文件
问题描述
我想在我的游戏管理器中有一个“克隆”游戏的功能。到目前为止,除了克隆游戏媒体之外,我已经完成了所有的克隆工作。
我希望媒体像这样克隆/复制:
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.File .Copy可以为您完成复制。它将源文件和目标文件(可以不同)作为参数)。
System.IO.File.Copy(oldFile, clonedFile)
推荐阅读
- python-3.x - 使用 python selenium 查找 Twitter 文本框元素
- javascript - 在烧瓶中等待获取没有得到所需的回报
- windows - 连接到隐藏的WiFi“网络”,传输数据并重新连接到原始网络
- amazon-web-services - 如何设置使用 Terraform 添加到 AD 域的新 Win10 实例的主机名?正在工作....现在不工作
- azure-devops - 如何在 Azure DevOps 的办公时间限制发布部署?
- python - 将文本插入 Microsoft Access 数据库
- node.js - 带有 Google 日历 API(时隙)React/NodeJS 的预约系统
- macos - 如何使基于 Electron 的应用程序处理 AppleScript 事件并定义 sdef 接口?
- python - 打包应用程序后运行 python-shell 电子应用程序时出错(通过使用电子生成器)
- .net - 如何将脚本 Powershell 调用到我的后端 .net 核心?