C VC 如何開啟長檔名的檔案

2021-10-07 20:27:49 字數 1482 閱讀 9691

c/vc++如何開啟長檔名的檔案

概述

最近本人在操作檔案的時候,碰到了長檔名,即絕對路徑+檔名總長度大於等於260位元組,這些長檔名直接使用fopen會失敗的。

本文舉例描述了,怎麼樣成功首席執行官檔名fopen,從而順利讀寫、建立等檔案操作,滿足了大部分檔案操作的需要。

編譯環境

vs2010

讀操作

orgfilename為長檔名

file*

openlongnamefileread

(char

* orgfilename)if(

strlen

(orgfilename)

<

260)

strcpy

(tmpbuf,

"\\\\?\\");

strcat

(tmpbuf, orgfilename)

;memset

(infilebuf,0,

sizeof

(infilebuf));

/* getshortpathname函式執行成功的前提是orgfilename檔案存在,否則infilebuf內容不會變 */

getshortpathname

(tmpbuf, infilebuf,

sizeof

(infilebuf)-1

);if(

strlen

(infilebuf)

<=0)

pfile =

fopen

(infilebuf,

"rb");

exit_fun:

return pfile;

}

寫、建立操作

orgfilename為長檔名

file*

openlongnamefilewrite

(char

* orgfilename)if(

strlen

(orgfilename)

<

260)

strcpy

(infilebuf,

"\\\\?\\");

strcat

(infilebuf, orgfilename)

; pfile =

fopen

(infilebuf,

"wb");

exit_fun:

return pfile;

}

小結

有了正常檔案控制代碼指標file*之後,就可以像一般操作檔案那樣,ftell、fseek、fread、fwrite等。

本**根據網上收集的資料和本人的探索,本**片段經vs2010測試沒有問題的。希望能夠幫到各位同行。

Windows刪除長檔名檔案

windows server 2003存在長檔名檔案問題,例如用ftp上傳了乙個檔名超過1024位元組長度的檔案,然後無法刪除。參考以下步驟 1.查詢要刪的檔案,獲取短檔名 d checkpointbeforemove dir x f1fj03 驅動器 d 中的卷是 新加捲 卷的序列號是 8869 ...

FATFS Fatfs讀目錄支援長檔名

背景 在使用fatfs檔案系統的時候,發現檔名一旦超出8.3這格式的時候,就會出現亂碼的現象。分析 經過查詢後發現,8.3格式就是短檔名的命名格式,8是指檔名或目錄名的主體部分小於等於8個字元,3是指檔名或目錄名的擴充套件部分小於等於3個字元中間以.作為分割,即類似88888888.333類似的檔案...

拿檔名 如何批量修改檔名

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