Visual Studio C++ UWP应用程序在任何情况下都不会写入文件

xuo3flqw  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(148)

我正在用C创建一个通用Windows平台应用程序,我需要从中创建和写入文件。如果不将文件添加到解决方案中并更改其属性以将其设置为可以引用的文本文件,我就无法读取任何文件。当尝试写入文件时,即使这些文件也无法工作。在任何Visual Studio C UWP应用程序中,这两个示例都无法打开文件并打印“无法打开文件”。
使用fopen:

//_CRT_SECURE_NO_WARNINGS included in preprocessor
#include <errno.h>
#include <stdio.h>
#include <string.h>

void VMatrix::SaveFile(string _fileName) 
{
FILE* filepoint;

    if ((filepoint = fopen("fileName.txt", "w")) == NULL) {
        // File could not be opened. filepoint was set to NULL
        // error code was stored in errno.
        // error message can be retrieved with strerror(err);
        fprintf(stderr, "cannot open file '%s': %s\n",
            "fileName.txt", strerror(errno));
    }
    else {
        // File was opened, filepoint can be used to read the stream.
        fclose(filepoint);
    }
}

字符串
关于fstream

#include <string>
#include <iostream>
#include <fstream>

void VMatrix::SaveFile(string _fileName) 
{
    fstream myfile;

    myfile.open("Test.txt", std::ios::out);

    if (!myfile.is_open())
    {
        std::cerr << "*** error: could not open output file\n";
    }

    myfile << "Test";
    myfile.close();
}


在上面的两个例子中,我已经在vs代码中测试了它们,它们都可以工作(它们都只是用于测试,不是最终的)。我已经从一个空白的C++ UWP应用程序进行了测试,它没有。我可以在项目中的某个位置启用文件写入权限吗?
编辑-我发现程序的工作目录没有权限,我已经修复了它,但我仍然无法指定一个路径到计算机上的任何其他地方写入,或读取,文件。

jrcvhitl

jrcvhitl1#

关于如何在C++/WinRT UWP中读写文件,可以参考文档UWP Create, write, and read a file
如果要访问UWP应用程序外部的文件,则需要使用Filepicker或打开文件访问权限。请注意,使用broadFileSystemAccess功能后,用户需要在App设置中手动打开权限。

相关问题