问题标签 [file-system-access-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
directory - Edge browser Native File System removeEntry 使用
我正在使用最新版本的 Edge(Canary 版本 86.0.615.0),我可以获得新的本机文件系统 API showOpenFilePicker 让我访问文件,但我找不到对 directoryHandle 函数的引用,包括 removeEntry 函数,如果用户选择删除文件。我错过了一个特殊的标志吗?我有一个 Origin-Tracker 代码,我还为 Native File System API 设置了实验标志。
javascript - 如何使用文件系统访问 API 在 Web 浏览器中递归读取本地文件和目录
我需要读取使用新的 Web 文件系统访问 API 打开的文件夹的所有文件和目录。我能够读取目录但不知道如何以优雅的方式继续递归
javascript - JavaScript:文件系统访问 API:无法将块排入封闭的可读流
我正在使用 JavaScript 文件系统访问 API 将可读流的输出流式传输到FileSystemWritableFileStream
. 我创建了一个可写流包装器来使用该writeStream.pipeTo(readStream)
方法,但是在使用手动读取ReadableStream
和写入FileSystemWritableFileStream
. 我跳过使用的标头,seek
因为它包含文件大小,然后开始写入数据。这是代码:
这在其他地方使用,如下所示:
一旦我开始写作,我就会在控制台中收到以下错误:
javascript - 访问给定文件夹中的所有文件(文件系统访问 API)
我可以使用文件系统访问 API ( https://web.dev/file-system-access/ ) 在网站中创建类似文件资源管理器的东西 (react)。
我打算做一个简单的在线文件浏览器,让你浏览打开一个文件夹,然后让你浏览文件夹,播放视频和 MP3。
(我知道几年前这是不可能的,因为 js 不可能访问本地存储中的任何内容,我只想知道是否有任何更改。如果文件系统访问 API 不是要走的路,您能否建议一些更好的方法来从文件夹中读取批量本地文件。)
javascript - 文件系统访问 API createWritable() 方法在控制台中有效,但在脚本中无效
我目前正在为未来的项目掌握文件系统访问 API,并且在使用以下行中的 createWritable() 方法时遇到了困难:
const writable = await fileHandle.createWritable();
当我触发它时,它给了我错误:
TypeError: fileHandle.createWritable is not a function
但是,当我在控制台中运行这个确切的命令时,它可以完美运行。
如果这完全相关,我正在使用 Windows 10。谢谢您的帮助。
我将在下面包含我的相关 HTML 和 JS:
HTML:
JS:
javascript - FileSystemAccessAPI 打开系统文件选择器,但不写入文件
我有一个 HTML 表单(在本地运行),我想将其输出转储到本地驱动器上用户指定的位置。我将字段格式化为字符串 ( contents
),然后将其传递给以下 JS 代码:
写文件.js
然后我在 HTML 代码中将它作为一个按钮实现,我相信它可以正常工作:
表单.html
这是 MDN Web Docs 的“概念和用法”部分的直接实现
Windows 保存对话框打开,允许用户保存文件,但文件为空白。我也尝试用contents
一个文字字符串替换,它没有出现在文件中。我不确定还有哪些其他调试方法,因为我很少开发 webapps(尽管我知道它们存在)。
我的想法是,由于此 API 仅限于安全上下文 (https://),它不能在本地 html 文件 (file:///) 上运行。但是不应该有一种方法让本地 HTML 文件绕过这个,因为它是在一个封闭的系统中吗?
浏览器:Chrome 88.0.4324.182
视窗版本:视窗 10 专业版
file-system-access-api - DOMException:当前上下文中的用户代理或平台不允许该请求
尝试使用FileSystemFileHandlegetFile()
的方法访问文件时,可能会发生此错误:DOMException: The request is not allowed by the user agent or the platform in the current context.
此代码有效:
但是,如果您存储fileHandle
(例如使用 IndexedDB)以保持对文件的访问,即使在页面刷新后,它也将不起作用。刷新页面后,该getFile()
方法会抛出 DOMException 错误。
这是怎么回事?
reactjs - 在 Electron + Create React App 中使用文件系统访问 API 写入文件失败
我有一个 create-react-app 使用File System Access API读写本地文件。在浏览器(支持它的 Chrome 或 Edge)中运行时,读取和写入文件都可以正常工作。
当应用程序在 Electron 中运行时,读取工作正常但写入失败,原因如下:Uncaught (in promise) DOMException: The request is not allowed by the user agent or the platform in the current context.
我正在使用最新的 Electron (12.0.1),它使用与我的 Chrome 浏览器中相同的 Chromium (89.0.4389.82)。
下面是相关代码。requestPermission
调用后的控制台日志显示在浏览器和true
Electron中。granted
true
denied
我尝试webSecurity
在创建BrowserWindow
时禁用,禁用沙箱appendSwitch
但没有任何帮助。
有没有办法给 Electron 中的 Chromium 更多权限?
如果没有,我愿意在 Electron 中以不同的方式处理文件写入。在那种情况下,在代码中写什么来代替TODO
?请注意,因为它是一个 create-react-app,所以该fs
模块不可用。
javascript - 在 Web 文件系统访问 API 中读取 ANSI 文件
我正在尝试使用文件系统访问 API 获取文件,并且使用以下代码效果很好:
问题是当我们有一个 ANSI 编码的文件时,像 Ö、Ü 和 Ä 这样的德语字符会变成 �,而它与 UTF-8 编码的文件完美搭配。
我无论如何都找不到使用file.text()
ANSI 代码读取文件
感谢帮助
reactjs - React useEffect hook 导致 DOMException: User activation is required to request permissions
我有一个 ReactuseEffect
挂钩,可以读取用户之前批准的本地文件。
要读取文件,它使用该[FileSystemHandle.queryPermission()][1]
方法,如果没有,granted
它将提示用户使用该FileSystemHandle.requestPermission()
方法进行访问。
问题是这发生在用户有机会与页面交互之前,这会导致DOMException: User activation is required to request permissions.
错误。
有没有办法解决?