C:Users使用者名稱AppDataLocal 用node如何獲取電腦的這個目錄

龙陌發表於2024-04-27

在Node.js中,你可以使用內建的os模組獲取使用者目錄,並結合path模組來拼接特定的子目錄路徑。對於Windows環境下的AppData目錄,你可以這樣做:

const os = require('os');
const path = require('path');

// 獲取使用者主目錄
let homeDir = os.homedir();

// AppData目錄在Windows系統通常位於使用者主目錄下的AppData\Local
let appDataLocal = path.join(homeDir, '\\AppData\\Local');

console.log(appDataLocal);

這段程式碼會輸出類似這樣的路徑(替換“使用者名稱”為實際的使用者名稱):

C:\Users\使用者名稱\AppData\Local

請注意,\在JavaScript字串中需要轉義,因此使用\\來表示單個反斜槓。
另外,儘管上述程式碼適用於大部分Windows系統,但在某些情況下,AppData可能被設定為只讀或不可見,此時可能需要特殊許可權才能訪問。

對於mac電腦呢?

對於Mac電腦,獲取使用者應用程式資料目錄(相當於Windows下的AppData)的標準路徑通常是~/Library/Application Support,以及~/Library/Caches~/Library/Preferences等,這些路徑對應著不同的資料儲存用途。要獲取~/Library/Application Support目錄,你可以在Node.js中使用以下程式碼:

const os = require('os');
const path = require('path');

// 獲取使用者主目錄
let homeDir = os.homedir();

// Mac OS 下 Application Support 目錄
let appSupportDir = path.join(homeDir, '/Library/Application Support');

console.log(appSupportDir);

但是,如果你需要獲取MacOS下的Local Storage,更準確的做法是使用electronelectron-store等庫來獲取標準的本地儲存路徑,或者利用Node.js的process模組提供的全域性變數process.env來查詢環境變數:

if (process.platform === 'darwin') {
  let localStoragePath = path.join(process.env.HOME, 'Library', 'Application Support');
  console.log(localStoragePath);
}

上面的程式碼片段會輸出類似於以下路徑的內容:

/Users/使用者名稱/Library/Application Support

請注意,在原生的Node.js環境中,沒有內建的方式來直接獲取Mac特有的Local目錄,因此在編寫跨平臺應用時,往往需要針對不同作業系統採取不同的策略。而在Electron應用中,可以透過app.getPath(name)函式來獲取特定的路徑,例如:

const { app } = require('electron');

let localDataPath = app.getPath('userData'); // 這將返回Electron應用的本地資料目錄

相關文章