我需要在内存中存储一个 byte[]。我需要稍后访问它。 byte[] 代表一个视频。下面的代码将允许将文件写入内存,以及从内存中访问。当调用如下所示的remove方法时,后面仍然可以访问。
我已经检查过路径名是相同的。
public void StoreVideo(byte[] video, string filename)
{
var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var directoryname = Path.Combine(documents, "Videos");
Directory.CreateDirectory(directoryname);
var path = Path.Combine(directoryname, filename);
File.WriteAllBytes(path, video);
}
public void RemoveVideo(string filename)
{
var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var directoryname = Path.Combine(documents, "Videos");
var path = Path.Combine(directoryname, filename);
File.Delete(filename);
}
public byte[] GetVideo(string filename)
{
var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var directoryname = Path.Combine(documents, "Videos");
var path = Path.Combine(directoryname, filename);
if(File.Exists(path))
{
return File.ReadAllBytes(path);
}
return null;
}
最佳答案
这个问题的答案只是在传递给 File.Delete 方法的路径上放了一个小脑屁。但是,对于那些遇到这种情况的人,您应该知道 File.Delete 如果无法删除文件,则不会抛出任何异常。将 File.Delete 方法包装为对 File.Exists 的检查应该是一种很好的做法
关于c# - Xamarin.Forms 在运行时删除文件 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45313257/