windows下如何檢測檔名大小寫不匹配

2021-06-27 00:40:54 字數 1337 閱讀 8776

ios和android(還有linux)都是檔名大小寫敏感的,windows是大小寫不敏感的。

這樣遊戲開發的時候就會出現這樣的問題,windows下測試正常的遊戲(包括mac下的ios模擬器執行正常的遊戲,因為mac系統也是檔名大小寫不敏感的),放到實際裝置上執行可能各種崩潰。其中十有**是配置檔名和實際檔名不匹配造成的。

解決方法有:

1、所有資源檔名轉小寫(通過指令碼刷一下),然後讀取檔案的函式裡同樣把傳入的檔名轉小寫,這樣就可以保證一致了。

2、資源打包(但是又不僅僅是zip壓縮,因為zip讀取檔案是大小寫敏感的),比如我封裝的乙個資源包格式是大小寫無關的,這樣同樣可以保證能夠找到正確的檔案。

3、使用下面的**檢測傳入的檔名和實際檔名是否一致。這樣在windows下也可以檢測出大小寫不匹配的情況,及時進行修正。

[cpp]view plain

copy

bool

checkfilename(

const

char

* pszfilename)  

}  if(currentpath.empty())   

win32_find_dataa ffd;  

handle

hfind = findfirstfilea(currentpath.c_str(), &ffd); 

//檔名支援中文unicode

realoutput += ffd.cfilename;  

if(i != outputdirs.size() - 1)   

}  if

(realoutput != inputfilename) ;  

snprintf(msg, sizeof

(msg), 

"in config:%s   real path:%s"

, inputfilename.c_str(), realoutput.c_str());  

ccmessagebox(msg, "file name error"

);  

}  #endif

return

true

;  }  

通過findfirstfile可以查詢任意檔案或資料夾是否存在,並且返回的檔案資訊裡面會有當前檔案的真實檔名(但是不包含路徑資訊)。原本我是想通過檔案控制代碼獲取到實際檔案路徑,不過google了下發現比較麻煩而且還需要用到驅動開發的sdk。 所以換了個思路,根據傳入的檔名路徑,乙個乙個分段查詢到真實檔名(路徑名),把這些真實檔名拼接起來就是實際檔名了(大小寫與磁碟上的真實路徑相同),然後比較傳入和返回的兩個路徑是否一致,就可以知道檔名大小寫是否匹配了。

Ubuntu下Windows檔名亂碼

把一些windows上建立的檔案傳送到ubuntu後,這些檔案 資料夾 壓縮包等 的檔名會亂碼,原因為windows下的檔名以gbk編碼,而ubuntu下的檔案 名為utf 8編碼。convmv就是更改檔名編碼方式的乙個工具。比如 sudo convmv f gbk t utf 8 r notest...

windows批量修改檔名或去掉檔名中的字串

複製下面 到乙個txt文字中,將字尾名修改為bat,雙擊執行即可。操作方式如下圖 這裡我去掉了新建兩個字。注意編碼問題,如果開啟是亂碼,請先檢視cmd的屬性,然後將文字儲存為對應字元編碼。複製下方 echo off set p str1 請輸入要替換的檔案 資料夾 名字串 可替換空格 set p s...

拿檔名 如何批量修改檔名

在工作和生活中,我們經常需要將許多檔案命名為固定格式,如果需要重新命名的檔案數量龐大,那重新命名將會變成一件非常枯燥繁瑣費時的工作,今天在這裡分享乙個批量修改檔名的 希望對大家有所幫助,就算是數百個檔名,也就幾秒鐘完事。先貼上 文字框內下滑可以複製完整內容哦 address r d 中銀國際實習 r...