C# 删除快捷方式 不用 File.Delete
时间: 2024-09-30 20:02:44 浏览: 29
在C#中,如果你想删除一个快捷方式而不是直接删除其目标文件,你可以通过`System.IO.IsolatedStorageFile`和`System.IO.StreamReader`来操作。由于快捷方式通常关联着一个孤立存储的流,可以按以下步骤操作:
```csharp
using (IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (isolatedStorage.FileExists(快捷方式路径))
{
using (StreamReader reader = new StreamReader(isolatedStorage.OpenFile(快捷方式路径, FileMode.Open)))
{
string shortcutData = reader.ReadToEnd();
// 在这里你可以解析快捷方式数据,比如提取Target属性
// 然后删除对应的存储项
isolatedStorage.Remove(快捷方式路径);
}
}
}
```
这里需要注意的是,这种方法仅适用于Windows环境下的应用程序,因为Windows的快捷方式依赖于孤立存储。另外,直接修改快捷方式内容而不实际删除快捷方式文件可能不会影响桌面图标等显示,但在某些场景下可能需要进一步处理。
相关问题
public async Task<ResultTestDto> Import([NotNull] IFormFile file) { await CheckCreatePolicyAsync(); if (FilesAppService.IsExcel(file)) throw new UserFriendlyException("请上传正确的Excel格式文件!"); var fileEntity = await FilesAppService.UploadFile(file); string refPath = ""; try { var filePath = FilesAppService.GetFileSavePath(fileEntity.Path); byte[] filedata = File.ReadAllBytes(filePath);//根据路径读取文件数据 PartyInterface partyInterface = new PartyInterface(); refPath = partyInterface.FileDecrypt(filedata); } catch (Exception ex) { } if (refPath != "") fileEntity.Path = refPath; var workBook = GetWorkBook(fileEntity); if (refPath != "") File.Delete(refPath); return await ImportProcess(workBook); }
这段代码是一个C#的异步方法,接受一个IFormFile类型的参数,并返回一个Task<ResultTestDto>类型的结果。方法中首先调用了CheckCreatePolicyAsync()方法,然后通过IsExcel()方法判断传入的文件是否为Excel格式,如果不是则抛出异常。接着调用FilesAppService.UploadFile()方法将文件上传,获取上传后的文件实体。然后通过文件路径读取文件数据,并对文件数据进行解密。如果解密成功,则将文件路径赋值为解密后的文件路径。然后调用GetWorkBook()方法获取Excel文件的工作簿,并调用ImportProcess()方法处理工作簿数据。最后如果解密成功,则删除解密后的文件。如果在解密过程中出现异常,则不进行删除操作。
阅读全文