在 Node.js 中获取完整的文件路径

我有一个应用程序,上传到一个特定的文件夹,说,“上传”的 csv 文件。 现在我想得到这个 csv 文件的完整路径,例如 D:\MyNodeApp\uploads\Test.csv

如何在 Node.js 中获得文件位置? 我使用 multer 来上传文件。

145847 次浏览

假设您正在使用 multer 和 Express,请在您的控制器方法中尝试这样做:

var path = require('path');


//gets your app's 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)
var path = require("path");
var absolutePath = path.resolve("Relative file path");

例如,您可以编辑结构:

C:-> WebServer-> Public-> Uploads-> MyFile.csv

你的工作目录应该是 Public 比如 path. decision 应该是这样的。

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

POSIX home/WebServer/Public/Uploads/MyFile.csv
WINDOWS C: WebServer 公共上传 MyFile.csv

这个解决方案是多平台的,并且允许您的应用程序在 windows 和 posx 机器上工作。

在 TypeScript 中,我根据相对文件路径执行了以下操作。

import { resolve } from 'path';


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

从文件夹中获取所有文件并打印每个文件的说明。

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( folder, file );


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


});

如果您使用的是“ dirent”类型:

const path = require( "path" );
full_path = path.resolve( path_to_folder_containing__dir_ent__ , dir_ent.name );

类: f.Dirent Https://nodejs.org/api/fs.html#fs_dirent_name

模块: fs.path Https://nodejs.org/api/path.html

我认为最简单的选择是: Dirname 模块: < a href = “ https://nodejs.org/docs/update/api/modules.html # module _ dirname”rel = “ nofollow norefrer”> https://nodejs.org/docs/latest/api/modules.html#modules_dirname

文件名: https://nodejs.org/docs/latest/api/modules.html#modules_filename

Log (_ _ dirname)

Log (_ _ filename)