加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – WinRT – 访问被拒绝读取文件

发布时间:2020-12-17 07:13:03 所属栏目:百科 来源:网络整理
导读:我正在尝试编写一些代码来写入文本文件.我有代码工作…但今天(没有更改)它开始生成“访问被拒绝”错误.我写的是LocalFolder( Windows.Storage.ApplicationData.Current.LocalFolder). 我是否必须在清单中声明我要在LocalStorage中保存文件?我知道我必须为我
我正在尝试编写一些代码来写入文本文件.我有代码工作…但今天(没有更改)它开始生成“访问被拒绝”错误.我写的是LocalFolder( Windows.Storage.ApplicationData.Current.LocalFolder).

我是否必须在清单中声明我要在LocalStorage中保存文件?我知道我必须为我的文件,或者我错过了什么?这是我的示例方法,说明了我如何写出文件:

''' <summary>
    ''' Writes all of the text to the specified file in one of the specified safe storage folders.
    ''' </summary>
    ''' <param name="text">The text to write.</param>
    ''' <param name="append">Whether or not to append the data or overwrite what is in the file.</param>
    ''' <param name="fileName">The name of the file to write the data to.</param>
    ''' <param name="safeFolder">The safe storage folder that should be written to.  These folders are isolated for the application to use
    ''' and do not require additional manifest permissions.</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Async Function WriteAllText(text As String,append As Boolean,fileName As String,safeFolder As SafeStorageFolder) As Task
        Dim folder As Windows.Storage.StorageFolder

        Select Case safeFolder
            Case SafeStorageFolder.Local
                folder = Windows.Storage.ApplicationData.Current.LocalFolder
            Case SafeStorageFolder.Roaming
                folder = Windows.Storage.ApplicationData.Current.RoamingFolder
            Case SafeStorageFolder.Temp
                folder = Windows.Storage.ApplicationData.Current.TemporaryFolder
            Case Else
                folder = Windows.Storage.ApplicationData.Current.LocalFolder
        End Select

        Dim sf As StorageFile

        If append = True Then
            sf = Await folder.CreateFileAsync(fileName,Windows.Storage.CreationCollisionOption.OpenIfExists)
        Else
            sf = Await folder.CreateFileAsync(fileName,Windows.Storage.CreationCollisionOption.ReplaceExisting)
        End If

        ' WriteTextAsync will always overwrite the file even if the existing file has been opened.  We'll use
        ' AppendTextAsync here,the above CreateFileAsync will handle whether the file has been truncated or not.
        Await FileIO.AppendTextAsync(sf,text)

    End Function

解决方法

我在测试项目中使用了相同的代码逻辑,它对我来说很好.我没有通过所有追加/不追加路径,但我能够写入每个文件夹.

您是否从select中设置的文件夹对象中提取文件路径并仔细检查是否可以在文件资源管理器中打开它?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读