2023-11-12 22:00:29 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 获取文件的后缀名
|
|
|
|
|
|
* @param fileName 文件名
|
|
|
|
|
|
* @returns 文件后缀名
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function getFileExt(fileName: string): string {
|
|
|
|
|
|
const index = fileName.lastIndexOf(".");
|
|
|
|
|
|
if (index === -1) {
|
|
|
|
|
|
return "";
|
|
|
|
|
|
}
|
|
|
|
|
|
return fileName.substring(index + 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2023-11-14 15:52:35 +08:00
|
|
|
|
* 获取文件全名(包含扩展名)
|
2023-11-12 22:00:29 +08:00
|
|
|
|
* 该函数接收一个表示文件路径的字符串作为参数,返回该路径中文件名部分。
|
|
|
|
|
|
* 首先查找路径中最后一个斜杠或反斜杠的索引,若未找到则直接返回路径;
|
|
|
|
|
|
* 若找到,则使用substring方法提取最后一个斜杠或反斜杠后面的字符串作为文件名并返回。
|
|
|
|
|
|
* @param path 文件路径
|
2023-11-14 15:52:35 +08:00
|
|
|
|
* @returns 文件全名(包含扩展名)
|
2023-11-12 22:00:29 +08:00
|
|
|
|
*/
|
2023-11-14 15:52:35 +08:00
|
|
|
|
export function getFileFullName(path: string): string {
|
2023-11-12 22:00:29 +08:00
|
|
|
|
let index = path.lastIndexOf("/");
|
|
|
|
|
|
if (index === -1) {
|
|
|
|
|
|
index = path.lastIndexOf("\\");
|
|
|
|
|
|
if (index === -1) {
|
|
|
|
|
|
return path;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return path.substring(index + 1);
|
|
|
|
|
|
}
|
2023-11-14 15:52:35 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取文件名不包含扩展名
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function getFileNameWithoutExt(path: string): string {
|
|
|
|
|
|
const fileName = getFileFullName(path);
|
|
|
|
|
|
const index = fileName.lastIndexOf(".");
|
|
|
|
|
|
if (index === -1) {
|
|
|
|
|
|
return fileName;
|
|
|
|
|
|
}
|
|
|
|
|
|
return fileName.substring(0, index);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 文件信息
|
|
|
|
|
|
*/
|
|
|
|
|
|
export interface IFileInfo {
|
|
|
|
|
|
/** 文件名(包含扩展名) */
|
|
|
|
|
|
fileName: string;
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 文件名不带扩展名
|
|
|
|
|
|
*/
|
|
|
|
|
|
fileNameNoExt: string;
|
|
|
|
|
|
/** 文件扩展名 */
|
|
|
|
|
|
fileExtName: string;
|
|
|
|
|
|
/** 路径仅包含文件夹 */
|
|
|
|
|
|
pathOnly: string;
|
|
|
|
|
|
/** 完整路径 */
|
|
|
|
|
|
fullPath: string;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取文件信息
|
|
|
|
|
|
* @param path 文件路径
|
|
|
|
|
|
* @param platform 平台名称,默认为"win32"
|
|
|
|
|
|
* @returns 包含文件名、文件名不带扩展名、文件扩展名、路径仅包含文件夹、完整路径的对象
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function getFileInfo(
|
|
|
|
|
|
path: string,
|
|
|
|
|
|
platform: string = "win32"
|
|
|
|
|
|
): IFileInfo {
|
|
|
|
|
|
const pathSaprator = platform === "win32" ? "\\" : "/";
|
|
|
|
|
|
|
|
|
|
|
|
let pathOnly: string;
|
|
|
|
|
|
|
|
|
|
|
|
let fileName: string;
|
|
|
|
|
|
let fileExtName: string;
|
|
|
|
|
|
let fileNameNoExt: string;
|
|
|
|
|
|
const pathIndex = path.lastIndexOf(pathSaprator);
|
|
|
|
|
|
if (pathIndex === -1) {
|
|
|
|
|
|
pathOnly = "";
|
|
|
|
|
|
fileName = path;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
pathOnly = path.substring(0, pathIndex + 1);
|
|
|
|
|
|
fileName = path.substring(pathIndex + 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const extIndex = fileName.lastIndexOf(".");
|
|
|
|
|
|
if (extIndex === -1) {
|
|
|
|
|
|
fileExtName = "";
|
|
|
|
|
|
fileNameNoExt = fileName;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
fileExtName = fileName.substring(extIndex + 1);
|
|
|
|
|
|
fileNameNoExt = fileName.substring(0, extIndex);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
fileName,
|
|
|
|
|
|
fileNameNoExt,
|
|
|
|
|
|
fileExtName,
|
|
|
|
|
|
fullPath: path,
|
|
|
|
|
|
pathOnly,
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|