UWP程序Assets文件夹在运行时的绝对路径怎么表示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UWP程序Assets文件夹在运行时的绝对路径怎么表示相关的知识,希望对你有一定的参考价值。

我用C++开发了一个UWP程序,现在需要用到 fopen 打开一个文件进行读写,但我不知道如何获取Assets文件夹的路径。

应用在安装了之后,会自动生成三个文件夹存放应用的数据,分别是local 文件夹(用来存放本地数据)、roaming 文件夹(用来存放漫游数据)或 temp 文件夹(用来寻访临时数据)。在程序中访问这三个文件夹中的文件,需要使用的URI的前缀应该是“ms-appdate://”,后面加上路径,比如“/local/a.mp3”,需要注意的是路径最前面的“/”代表了路径是从根目录开始的绝对路径,因此完整的URI定义应该是:new Uri("ms-appdata:///local/a.mp3");

如果需要访问应用程序包中的资源,也就是在开发中显示在解决资源管理器中的资源,比如Assets中的资源,需要使用的前缀是“ms-appx://”,后面的路径与上一段讲的一样,比如访问Assets中的一个mp3文件使用的URI就是

“ms-appx:///Assets/a.mp3”

       最后,如果需要在程序代码中取到这个文件,应该使用StorageFile的GetFileFromApplicationUriAsync方法,例如:

Uri uri = new Uri("ms-appx:///Assets/a.mp3");

StorageFile file = awaitStorageFile.GetFileFromApplicationUriAsync(uri);
参考技术A 要按照如下步骤取消IE增

Vue-项目搭建时的常用配置

1、Vue静态资源存放的选择

assets: 编译过程中会被webpack处理理解为模块依赖,只支持相对路径的形式,assets放可能会变动的文件。
static: 存放第三方文件的地方,不会被webpack解析,会直接被复制到最终的打包(默认是dist/static)下,必须使用绝对路径引用这些文件.static放不会变动的。

2、项目图标设置

  将icon-website.png的图标文件放到static文件夹内,在index.html的head中添加:

<link rel="shortcut icon" type="image/x-icon" href="static/icon-icon.png">

3、项目地址 去掉‘#‘

  项目搭建后,路径中会有个 ‘#‘ 号,如果想把 ‘#‘ 号去掉,需要把项目的路由方式设置为 history 模式;这种模式在页面刷新时会报错(404),需要在服务端设置相应配置。

export default new Router({
  mode: ‘history‘,        //设置history模式
  routes: [
    {
      path: ‘/‘,
      name: ‘HelloWorld‘,
      component: HelloWorld
    }
  ]
})  

  Apache:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

  Nginx:

location/{
  try_files $uri $uri/ /index.html;
}

  原生Node.js

const http = require(‘http‘)
const fs = require(‘fs‘)
const httpPort = 80
http.createServer((req,res)=>{
    fs.readFile(‘index.htm‘,‘utf-8‘,(err,content)=>{
        if(err){
            console.log(‘We cannot open "index.htm" file.‘)
        }
        res.writeHead(200,{
            ‘Content-Type‘:‘text/html; charset=utf-8‘
        })
        res.end(content)
    })
}).listen(httpPort,()=>{
    console.log(‘Server listening on: http://localhost:%s‘,httpPort)
})

补充:什么是vue-router的history模式?

 

以上是关于UWP程序Assets文件夹在运行时的绝对路径怎么表示的主要内容,如果未能解决你的问题,请参考以下文章

android 修改apk的asset目录后怎么安装

相对路径和绝对路径

linux系统下,输入绝对路径程序运行不了

在页面调整大小之前,UWP图像有时不可见

怎样用java命令来运行带有绝对路径的java文件

设计时的 UWP 资源字符串 (.resw)