Javascript получить имя файла и тип из пути в виде строки - PullRequest
0 голосов
/ 05 марта 2020

У меня есть система перетаскивания файлов, которая возвращает весь путь к файлу в виде строки C:\Users\alexr\Desktop\filename.type. Я могу удалить домашний каталог, поэтому у меня осталось Desktop\filename.type. Как можно отделить путь к файлу (Desktop), чтобы он равнялся переменной path, а также имя и тип файла (filename.type), равный переменной type.

Я хотел бы ответ javascript или jQuery (хотя я сомневаюсь, что это будет необходимо)

Редактировать

Ожидаемый результат:

Меньше сказать, что я имел следующий путь Desktop\Folder\file.txt

Я хотел бы переменную path, содержащую Desktop\Folder

И переменную file, содержащую file.txt

Надеюсь, что это проясняет вещи .

Ответы [ 3 ]

2 голосов
/ 05 марта 2020

Вам нужно разделить путь к файлу следующим образом:

JSON.stringify(str).split("\\");

Здесь нет необходимости изменять ввод, если вы хотите разделить строку, имеющую backsla sh, затем используйте

.split("\\")

И фрагмент следующим образом,

const str = "Desktop\filename.type";

const res = JSON.stringify(str).split("\\");
const result = JSON.parse(res).split(',');

const path = result[0];
const file = result[1];

console.log(path);
console.log(file);

Редактировать:

Хорошо, вот причина, по которой я использовал JSON.stringify(), потому что строка имеет backsla sh который игнорирует следующий символ после backslash, чтобы получить фактическую строку, здесь я использовал JSON.stringify .. Вы можете найти разницу между ними в консоли ниже.

const str = "Desktop\filename.type";
console.log(str);
console.log(JSON.stringify(str))
console.log(JSON.stringify(str));

Когда вы разбиваете настоящую строку как,

.split("\\"),

будет выглядеть как один массив строк ..

const str = "Desktop\filename.type";

console.log(str.split("\\"));
1 голос
/ 05 марта 2020

const str   = String.raw`Desktop\Folder\file.txt`;
const parts = str.split(`\\`);
const file  = parts.pop();
const path  = parts.slice(0).join(`\\`);

console.log(file)
console.log(path)

Примечание: я использую String.raw для сохранения форвард слэ sh, вам может не понадобиться

1 голос
/ 05 марта 2020

Вы можете просто использовать строку substring, чтобы получить последний индекс sla sh (поскольку это хороший индикатор, где будет filename.type.

\\ - это просто бежать \

Пример:

function splitPath(path) {
  return {
    path: path,
    file: path.substring(path.lastIndexOf('\\') + 1, path.length)
  };
}

const path = 'C:\\Users\\alexr\\Desktop\\filename.type';
console.log(splitPath(path));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...