首页 > 解决方案 > 无法在 BrowserFS 中创建文件夹

问题描述

我正在尝试遵循本指南:https ://github.com/pyodide/pyodide/issues/613

问题是我收到一条错误消息:

(index):181 Uncaught (in promise) TypeError: FS.createFolder is not a function

事实上,如果我尝试在控制台中打印 FS,我可以看到它包含很多功能,但 createFolder 不是其中之一:

DB_NAME: ƒ ()
DB_STORE_NAME: "FILE_DATA"
DB_VERSION: 20
ErrnoError: ƒ ErrnoError(errno,node)
FSNode: ƒ (parent,name,mode,rdev)
FSStream: ƒ ()
MAX_OPEN_FDS: 4096
allocate: ƒ (stream,offset,length)
analyzePath: ƒ (path,dontResolveLastLink)
chdir: ƒ (path)
chmod: ƒ (path,mode,dontFollow)
chown: ƒ (path,uid,gid,dontFollow)
chrdev_stream_ops: {open: ƒ, llseek: ƒ}
close: ƒ (stream)
closeStream: ƒ (fd)
create: ƒ (path,mode)
createDataFile: ƒ (parent,name,data,canRead,canWrite,canOwn)
createDefaultDevices: ƒ ()
createDefaultDirectories: ƒ ()
createDevice: ƒ (parent,name,input,output)
createFile: ƒ (parent,name,properties,canRead,canWrite)
createLazyFile: ƒ (parent,name,url,canRead,canWrite)
createNode: ƒ (parent,name,mode,rdev)
createPath: ƒ (parent,path,canRead,canWrite)
createPreloadedFile: ƒ (parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)
createSpecialDirectories: ƒ ()
createStandardStreams: ƒ ()
createStream: ƒ (stream,fd_start,fd_end)
currentPath: "/"
cwd: ƒ ()
destroyNode: ƒ (node)
devices: {259: {…}, 1280: {…}, 1536: {…}, 16384: {…}, 16640: {…}, 16896: {…}}
ensureErrnoError: ƒ ()
fchmod: ƒ (fd,mode)
fchown: ƒ (fd,uid,gid)
filesystems: {MEMFS: {…}, IDBFS: {…}, NODEFS: {…}, WORKERFS: {…}, PROXYFS: {…}}
findObject: ƒ (path,dontResolveLastLink)
flagModes: {r: 0, r+: 2, w: 577, w+: 578, a: 1089, …}
flagsToPermissionString: ƒ (flag)
forceLoadFile: ƒ (obj)
ftruncate: ƒ (fd,len)
genericErrors: {44: ErrnoError}
getDevice: ƒ (dev)
getMode: ƒ (canRead,canWrite)
getMounts: ƒ (mount)
getPath: ƒ (node)
getStream: ƒ (fd)
hashAddNode: ƒ (node)
hashName: ƒ (parentid,name)
hashRemoveNode: ƒ (node)
ignorePermissions: false
indexedDB: ƒ ()
init: ƒ (input,output,error)
initialized: false
ioctl: ƒ (stream,cmd,arg)
isBlkdev: ƒ (mode)
isChrdev: ƒ (mode)
isClosed: ƒ (stream)
isDir: ƒ (mode)
isFIFO: ƒ (mode)
isFile: ƒ (mode)
isLink: ƒ (mode)
isMountpoint: ƒ (node)
isRoot: ƒ (node)
isSocket: ƒ (mode)
lchmod: ƒ (path,mode)
lchown: ƒ (path,uid,gid)
llseek: ƒ (stream,offset,whence)
loadFilesFromDB: ƒ (paths,onload,onerror)
lookup: ƒ (parent,name)
lookupNode: ƒ (parent,name)
lookupPath: ƒ (path,opts)
lstat: ƒ (path)
major: ƒ (dev)
makedev: ƒ (ma,mi)
mayCreate: ƒ (dir,name)
mayDelete: ƒ (dir,name,isdir)
mayLookup: ƒ (dir)
mayOpen: ƒ (node,flags)
minor: ƒ (dev)
mkdev: ƒ (path,mode,dev)
mkdir: ƒ (path,mode)
mkdirTree: ƒ (path,mode)
mknod: ƒ (path,mode,dev)
mmap: ƒ (stream,address,length,position,prot,flags)
modeStringToFlags: ƒ (str)
mount: ƒ (type,opts,mountpoint)
mounts: []
msync: ƒ (stream,buffer,offset,length,mmapFlags)
munmap: ƒ (stream)
nameTable: (4096) [6: FSNode, 7: FSNode, 8: FSNode, 22: FSNode, 24: FSNode, 25: FSNode, 26: FSNode, 28: FSNode, 30: FSNode, 33: FSNode, 35: FSNode, 36: FSNode, 41: FSNode, 48: FSNode, 52: FSNode, 53: FSNode, 56: FSNode, 58: FSNode, 59: FSNode, 61: FSNode, 62: FSNode, 63: FSNode, 65: FSNode, 78: FSNode, 86: FSNode, 95: FSNode, 96: FSNode, 100: FSNode, 102: FSNode, 103: FSNode, 115: FSNode, 123: FSNode, 124: FSNode, 128: FSNode, 129: FSNode, 131: FSNode, 132: FSNode, 136: FSNode, 138: FSNode, 144: FSNode, 151: FSNode, 155: FSNode, 163: FSNode, 164: FSNode, 169: FSNode, 170: FSNode, 177: FSNode, 178: FSNode, 179: FSNode, 180: FSNode, 186: FSNode, 191: FSNode, 192: FSNode, 194: FSNode, 202: FSNode, 210: FSNode, 214: FSNode, 229: FSNode, 231: FSNode, 236: FSNode, 245: FSNode, 247: FSNode, 249: FSNode, 253: FSNode, 260: FSNode, 261: FSNode, 263: FSNode, 264: FSNode, 265: FSNode, 266: FSNode, 270: FSNode, 273: FSNode, 280: FSNode, 282: FSNode, 284: FSNode, 286: FSNode, 289: FSNode, 290: FSNode, 292: FSNode, 294: FSNode, 309: FSNode, 313: FSNode, 317: FSNode, 320: FSNode, 322: FSNode, 323: FSNode, 333: FSNode, 337: FSNode, 347: FSNode, 355: FSNode, 357: FSNode, 363: FSNode, 365: FSNode, 376: FSNode, 378: FSNode, 383: FSNode, 386: FSNode, 391: FSNode, 403: FSNode, 408: FSNode, …]
nextInode: 1362
nextfd: ƒ (fd_start,fd_end)
nodePermissions: ƒ (node,perms)
open: ƒ (path,flags,mode,fd_start,fd_end)
quit: ƒ ()
read: ƒ (stream,buffer,offset,length,position)
readFile: ƒ (path,opts)
readdir: ƒ (path)
readlink: ƒ (path)
registerDevice: ƒ (dev,ops)
rename: ƒ (old_path,new_path)
rmdir: ƒ (path)
root: FSNode {parent: FSNode, mount: {…}, mounted: null, id: 1, name: '/', …}
saveFilesToDB: ƒ (paths,onload,onerror)
stat: ƒ (path,dontFollow)
staticInit: ƒ ()
streams: (4) [FS.FSStream, FS.FSStream, FS.FSStream, null]
symlink: ƒ (oldpath,newpath)
syncFSRequests: 0
syncfs: ƒ (populate,callback)
tracking: {openFlags: {…}}
trackingDelegate: {}
truncate: ƒ (path,len)
unlink: ƒ (path)
unmount: ƒ (mountpoint)
utime: ƒ (path,atime,mtime)
write: ƒ (stream,buffer,offset,length,position,canOwn)
writeFile: ƒ (path,data,opts)

我该如何解决这个问题?我需要创建一个文件夹,以便以后将文件夹中的所有文件导入我的程序。

提前致谢。

标签: browserfs

解决方案


出于某种原因,createFolderemscripten 中不存在 。改为使用createPath完全相同的参数。


推荐阅读