簡體   English   中英

獲取 Node.js 中的完整文件路徑

[英]Get full file path in Node.js

我有一個應用程序將 csv 文件上傳到特定文件夾,例如“上傳”。 現在我想獲取 csv 文件的完整路徑,例如D:\MyNodeApp\uploads\Test.csv

如何獲取 Node.js 中的文件位置? 我用multer上傳文件。

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

你的目錄結構例如:

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

例如,您的工作目錄將是 Public,path.resolve 就是這樣。

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

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

該解決方案是多平台的,允許您的應用程序在 windows 和 posix 機器上運行。

根據所提供的信息,我們可以做的很少,但我會做一些補充:

  • 您的“上傳”文件夾位於您的應用文件夾中。
  • 目錄結構非常簡單並且已修復,因此您擁有應用程序文件夾並且下面有一個級別,您有“上傳”文件夾。

然后,您可以獲得這些文件的完整路徑,如下所示:

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

就是這樣,通過使用__dirname請參閱此處的文檔 )變量,您可以獲得index.js文件的完整路徑,然后您可以手動添加其余文件。

假設您正在將 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) 

從文件夾中獲取所有文件並打印每個文件描述。

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);

});

在 TypeScript 中,我根據相對文件路徑執行了以下操作。

import { resolve } from 'path';

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

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

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

類:fs.Dirent https://nodejs.org/api/fs.html#fs_dirent_name

模塊:fs.path https://nodejs.org/api/path.html

我認為最簡單的選擇是:目錄名模塊:https://nodejs.org/docs/latest/api/modules.html#modules_dirname

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

console.log(__dirname)

console.log(__filename)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM