Получить полный путь к файлу в node.js

У меня есть приложение, которое загружает файл csv в определенную папку, скажем, загружает. Теперь я хочу получить полный путь к этому CSV файлу. Напр. D:\MyNodeApp\загрузки\Test.csv

Как получить расположение файла в node.js? Я использовал multer для загрузки файлов.

Заранее спасибо

Ответ 1

С предоставленной информацией мы можем сделать очень мало, но я сделаю несколько предположений:

  • Ваша папка "Uploads" находится внутри папки вашего приложения.
  • Структура каталогов очень проста и фиксирована, поэтому у вас есть папка приложения и один уровень ниже, у вас есть папка "uploads".

Затем вы можете получить полный путь к этим файлам, например так:

//index.js
var filename = "myfile.csv"; ///you already have this one.
var fullpath = __dirname + "/uploads/" + filename;

То есть, используя переменную __dirname (см. документы здесь), вы получаете полный путь к файлу index.js, а оттуда вы можете добавить остальное вручную.

Ответ 2

var path = require("path");
var absolutePath = path.resolve("Relative file path");

Структура dir, например:

С: → WebServer- > Public- > Uploads- > MyFile.csv

и ваш рабочий каталог будет публичным, например, path.resolve будет таким.

path.resolve("./Uploads/MyFile.csv");

POSIX home/WebServer/Public/Uploads/MyFile.csv
WINDOWS C:\WebServer\Public\Uploads\MyFile.csv

это решение является мультиплатформенным и позволяет вашему приложению работать как на окнах, так и на позиционных машинах.

Ответ 3

Предполагая, что вы используете multer with express, попробуйте это в своем методе контроллера:

var path = require('path');

//gets your app root path
var root = path.dirname(require.main.filename)

// joins uploaded file path with root. replace filename with your input field name
var absolutePath = path.join(root,req.files['filename'].path) 

Ответ 4

В TypeScript я сделал следующее на основе относительного пути к файлу.

import { resolve } from 'path';

public getValidFileToUpload(): string {
  return resolve('src/assets/validFilePath/testFile.csv');
}

Ответ 5

Получить все файлы из папки и распечатать описание каждого файла.

const path = require( "path" );
const fs = require( 'fs' );
const log = console.log;
const folder = './';

fs.readdirSync( folder ).forEach( file => {

   const extname = path.extname( file );
   const filename = path.basename( file, extname );
   const absolutePath = path.resolve( testFolder, file );

   log( "File : ", file );
   log( "filename : ", filename );
   log( "extname : ", extname );
   log( "absolutePath : ", absolutePath);

});