gpt4 book ai didi

javascript - 所有反斜杠将从本地文件路径中删除

转载 作者:太空宇宙 更新时间:2023-11-04 00:29:22 25 4
gpt4 key购买 nike

(我是一名 Actionscript/Flex 开发人员,正在转向 Javascript。这可能是一个愚蠢的问题并且是重复的,但我不知道该问题是否与 Javascript、Electron、一般的 Web 开发有关等等。请友善。)

我一直在使用 Electron 和 OSX 的 Fabric.js 开发一个简单的项目。其功能是用户可以选择本地镜像文件并对其进行注释。效果很好,我学到了很多东西。然而,我把它带到 Windows 上,由于用户选择的图像文件的路径被修改,它崩溃了。

由于某种原因,所有反斜杠都被从路径中删除。有人可以解释一下发生了什么事以及我如何解决这个问题吗?

OSX
path /Users/Rocket/Desktop/house.jpg
cmd: loadImage("/Users/Rocket/Desktop/house.jpg")
loadImage: /Users/Rocket/Desktop/house.jpg

Windows
path: C:\Users\Windows7\Desktop\assets\house.jpg
cmd: loadImage("C:\Users\Windows7\Desktop\assets\house.jpg")
loadImage: C:UsersWindows7Desktopassetshouse.jpg

如果我记录 filePickerCallback 回调的 filenames 参数,我会看到所有双反斜杠。当我在变量中使用该数组的第一项时,所有双反斜杠都会转换为单反斜杠。令人费解。

[ 'C:\\Users\\Windows7\\Desktop\\assets\\house.jpg' ]
<小时/>

在 Electron ( Node ?)上下文中:

function showFilePicker() {
var options = {
title: "Select Image",
properties: ['openFile'],
filters: [
{ name: 'Images', extensions: ['jpg', 'png'] },
],
}
dialog.showOpenDialog(mainWindow, options, filePickerCallback);
}

function filePickerCallback(filenames) {
if (filenames && filenames.length > 0) {
var path = filenames[0];
console.log('path',path);

var cmd = 'loadImage(' + '\"' + path + '\"' + ')'
console.log('cmd', cmd);

mainWindow.webContents.executeJavaScript(cmd);
}
}
<小时/>

在渲染上下文中

function loadImage(filepath) {
console.log('loadImage', filepath);
}

最佳答案

在 JavaScript 中,反斜杠被解释为下一个字符的转义。

`console.log('\a\b\c');` 
//==> ac ( escaped a is a, escaped b is backspace , escaped c is c'

如果你想在字符串中使用反斜杠,你也必须转义它们

`console.log('\\a\\b\\c');` 
//==> \a\b\c

换句话说,\中的第一个反斜杠被当作转义指示符吃掉:)

关于javascript - 所有反斜杠将从本地文件路径中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41578002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com