我试图从特定目录(文件夹)中删除文件,但它对我不起作用
这是我的代码
DeletePhoto.Clicked += async (sender, args) =>
{
var file = await Plugin.Media.CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions
{
PhotoSize = Plugin.Media.Abstractions.PhotoSize.Medium,
});
if ( file != null)
{
if (File.Exists(file.Path))
{
DependencyService.Get<IFileManager>().DeleteFile(file.Path);
}
file.Dispose();
}
};
在安卓中
public class FileManager : IFileManager
{
public void DeleteFile(string source)
{
File.Delete(source);
}
}
文件管理器接口
public interface IFileManager
{
void DeleteFile(string source);
}
在 mainfest 中给出了许可,但没有发生什么,我找到了我删除的文件
问题是PickPhotoAsync()
方法引起的,这个方法是在blow目录下保存一个镜像的COPY:
"/storage/emulated/0/Android/data/{package name}/files/Pictures/temp/***.jpg"
你可以调试找到这个,你可以通过这个检查MediaPlugin的这个问题
所以当你使用PickPhotoAsync()
method选择一个文件时,你实际删除的文件就是temp
目录中的副本。
如果要删除原始文件,则必须更改参数
DeleteFile(string source)
方法到原始路径如下:
string path= "/storage/emulated/0/Android/data/{package name}/files/Pictures/Test/***.jpg";
DeleteFile(path);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句