在Windows Store应用程序中保存文件

4

我的程序处理了用户指定的所有文件。最好将修改后的文件保留到源文件目录中。StorageFolder.GetFolderFromPathAsync 方法返回 "Access Denied"
由于在处理文件后保留了它们的扩展名,因此无法在清单中添加文件类型关联。而且无法确定用户选择了哪种类型(任何扩展名的文件)。 以下是出现错误的代码。

    internal async static void SetFile(List<byte> byteArray , StorageFile file)
    {
        try
        {
            string path = Path.GetDirectoryName(file.Path);
            StorageFolder newFolder = await StorageFolder.GetFolderFromPathAsync(path);
            StorageFile newFile = await newFolder.CreateFileAsync(string.Format(@"crt{0}", Path.GetFileName(file.Name)), CreationCollisionOption.FailIfExists);
            Stream stream = await file.OpenStreamForWriteAsync();
            BinaryWriter writer = new BinaryWriter(stream);
            writer.Write(byteArray);
            writer.Flush();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

StorageFile file - 用户指定的文件。我正在尝试根据源文件的路径创建一个新文件夹。出现错误 - "拒绝访问"。要访问此文件夹,我必须注册我使用的文件扩展名。这是不可能的。请告诉我,我们能否绕过此问题?或者在我的情况下可以做些什么?


从我所了解的来看:您有一个文件,对其进行一些操作并将其保存在同一位置,但名称略有修改? - VasileF
1个回答

1
据我所知,在Windows Store应用程序中,如果您不使用保存选择器,则无法将文件保存到PC中。这就是为什么您可能会收到“访问被拒绝”错误的原因。文件访问和权限 另一方面,您始终可以在专门为应用程序本身分配的系统位置中保存文件,即ApplicationData.LocalFolder
您可以为您的应用程序设置其他功能,以便它可以访问可移动设备。
我不知道除此之外还有什么。

请解释得更详细一些。应用程序的GUID会有多频繁地更改?当您编译新版本时,还是取决于其他因素?由于此更改,应用程序文件夹也会更改。如果数据丢失,后果将不堪设想。 - Daria Korosteleva
到目前为止,老实说我还没有尝试过,但有些人告诉我,如果你进行更新,存储在LocalFolder中的应用数据不会被删除。 - VasileF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接