0
我需要在内存中存储一个字节[]。我需要稍后访问它。字节[]代表一个视频。以下代码将允许将文件写入内存,以及从内存访问。当调用下面显示的remove方法时,它仍然可以稍后访问。Xamarin.Forms在运行时删除文件iOS
我已检查路径名是否相同。
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.Exists来检查怎么办? – Jason
感谢您的回复。这给了更奇怪的行为。作为RemoveVideo中的最后一行,将File.Exists(文件名)分配给布尔,结果为“false”。 – NPC
关于这个奇怪的部分是GetVideo在这次调用后仍然有效。这些方法按照上面列出的顺序调用 – NPC