[英]is there any function in c++ to check whether a file given in a specific path is a script(.sh) file or not
其中一個目錄中存在.sh文件,例如:path = /opt/WD/CD/SCD/temp.sh
c ++有什么功能可以檢查該位置(路徑)中的文件是否為腳本(.sh)文件
bool ValidCommand(const string & path)
{
bool return = true;
{
if (!access(path.c_str(),X_OK))
{
return = true;
}
else
return = false;
}
路徑= /opt/WD/CD/SCD/temp.sh
訪問對我不起作用:(
看一下
也許stat
您的需求,否則您可以查看file
的來源並查看其工作方式。
您可以使用stat 。 如果失敗(返回-1),則文件不存在。
您想要多精確。 讀取目錄並查找以.sh
結尾的文件名非常簡單。 ( boost::filesystem
擁有實現該功能所需的一切。)但是,當然,如果需要的話,我可以將C ++頭文件file.sh
(有點不正常)。 更為准確的測試將涉及讀取文件的開頭:如果前兩個字節為"#!"
,它可能是某種腳本,並且如果第一行匹配"#!\\\\s*(?:/usr)?/bin/sh/[az]*sh"
,那么您幾乎可以確定它是一個外殼程序腳本。 刪除[az]*
,它是Bourne或Posix shell腳本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.