gpt4 book ai didi

c# - 无法在 C# 中的 File.Copy 后删除临时文件

转载 作者:太空狗 更新时间:2023-10-30 00:53:27 29 4
gpt4 key购买 nike

将文件复制到临时目录后,我无法删除副本,因为 UnauthorizedAccessException异常(exception)。这里的想法是获取文件的副本,将其压缩然后删除副本,但是在删除 File.Copy 之间的所有代码之后和 File.Delete我仍然得到异常(exception)。退出程序会释放锁并允许我毫无问题地删除副本。

有没有一种方法可以在不导致这种持久锁定的情况下进行复制(并像 LastModified 一样保留文件元数据)?或者释放锁的方法? File.Copy 完成后是否应该锁定复制的文件?

我正在使用面向 .NET Framework 4.0 的 Visual C# 2010 SP1。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Xml;

namespace Test
{
class Program
{
static void Main(string[] args)
{
String FileName = "C:\\test.txt";
// Generate temporary directory name
String directory = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
// Temporary file path
String tempfile = Path.Combine(directory, Path.GetFileName(FileName));
// Create directory in file system
Directory.CreateDirectory(directory);
// Copy input file to the temporary directory
File.Copy(FileName, tempfile);
// Delete file in temporary directory
File.Delete(tempfile);
}
}
}

最佳答案

检查您的 "C:\\test.txt" 文件是否只读。

根据您的评论,这可能是您可以复制但无法删除的原因

试试下面的

File.SetAttributes(tempfile, FileAttributes.Normal);
File.Delete(tempfile);

关于c# - 无法在 C# 中的 File.Copy 后删除临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16394880/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com