文件.移动制作文件的副本
本文关键字:文件 副本 移动 | 更新日期: 2023-09-27 18:04:10
我有一些代码,我试图创建一个临时文件用作zip文件。
string tempPath = Path.GetTempFileName();
string targetPath =
string.Concat(Path.GetTempPath(),"//",Path.GetFileNameWithoutExtension(tempPath),".zip");
File.Move(tempPath, targetPath);
但是,正在创建一个新文件,而不是移动(重命名)临时文件。
我真的很困惑…
凯文我想这就是你要找的:
FileInfo.MoveTo ()
var newFiles = System.IO.Directory.GetFiles(updateLocation).Select(file => new FileInfo(file));
var workingDirectory = Environment.CurrentDirectory;
var existingFiles = System.IO.Directory.GetFiles(workingDirectory).Select(file => new FileInfo(file));
newFiles.ToList().ForEach(newFile =>
{
var matchedFile = existingFiles.ToList().Find(delegate(FileInfo file) { return file.Name == newFile.Name; });
if(matchedFile != null)
{
if(newFile.LastWriteTimeUtc != matchedFile.LastWriteTimeUtc)
{
if(!Directory.Exists(TEMP_DIRECTORY_NAME))
Directory.CreateDirectory(TEMP_DIRECTORY_NAME);
matchedFile.MoveTo(Path.Combine(TEMP_DIRECTORY_NAME, matchedFile.Name));
newFile.CopyTo(Path.Combine(workingDirectory, newFile.Name));
}
}
else
newFile.CopyTo(Path.Combine(workingDirectory, newFile.Name));
});'
这是预期的行为。如果您希望删除旧文件,则需要显式地执行此操作。
你的代码为我工作
Path.GetTempFileName()
将在您的计算机%TEMP%目录中创建一个新的0字节临时文件。文件之后。移动行运行时,临时文件被重命名为.zip扩展名。
在这之后,你现在可以使用文件:using (var writeStream = new FileStream(targetPath, FileMode.Open, FileAccess.ReadWrite))
{
// CODE HERE
}