瀏覽器安全沙箱禁止 JavaScript 直接訪問本地文件系統。僅 IE 支援 通過 ActiveXObject("Scripting.FileSystemObject") 讀取文件屬性 (含修改時間)。現代瀏覽器 (Chrome/Firefox/Edge) 無法實現。
<script>
function formatDate(d, fmt) {
var o = {
"M+": d.getMonth() + 1, "d+": d.getDate(), "h+": d.getHours(),
"m+": d.getMinutes(), "s+": d.getSeconds(), "q+": Math.floor((d.getMonth() + 3) / 3),
"S": d.getMilliseconds()
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
function readFileDate() {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = fso.GetFile("C:\\test.txt"); // 必須絕對路徑
var dt = file.DateLastModified; // 取得修改時間
alert(formatDate(new Date(dt), 'yyyy.MM.dd.hh:mm:ss'));
}
readFileDate();
</script>
C:\...),不支援相對路徑或 URL。file.lastModified (毫秒時間戳)。
<input type="file" id="f" />
document.getElementById('f').onchange = e => {
var file = e.target.files[0];
console.log(new Date(file.lastModified).toLocaleString());
};
fs.stat 完整訪問權限。純 Web 頁面 無法跨瀏覽器讀取本地文件修改時間。IE ActiveX 方案僅適用於內網受控環境;現代開發請採用文件上傳控件或桌面應用框架。