錯(cuò)誤記錄-FileStream訪問(wèn)被拒絕
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
簡(jiǎn)介:問(wèn)題:因項(xiàng)目需要,軟件需要讀取授權(quán)文件中的密文與本機(jī)驗(yàn)證碼做一定的邏輯比對(duì),使用FileStream實(shí)現(xiàn)文件的讀取,在本機(jī)調(diào)試沒(méi)問(wèn)題,但在其他同事電腦上有一些出現(xiàn)授權(quán)一直不通過(guò)的情況。 --MaQaQ 2023-10-24 分析:1、首先懷疑是否授權(quán)文件生成出錯(cuò),反復(fù)生成了幾遍,還確認(rèn)了下文件中的密文,出錯(cuò)的可能性不大,pass。 2、其次懷疑是部署的電腦環(huán)境問(wèn)題,巧合的是,授權(quán)不通過(guò)的電腦剛好是win11,而我本機(jī)是win10,一度讓我懷疑是操作系統(tǒng)問(wèn)題,但這個(gè)也太玄學(xué)了,先擱置。 3、查看了下授權(quán)驗(yàn)證的邏輯,發(fā)現(xiàn)拋異常了也會(huì)導(dǎo)致驗(yàn)證失敗,折騰了一下最后還是定位到異常的位置: using (Stream stream = new FileStream(fullName, FileMode.Open)) 獲取到的異常信息類似:System.UnauthorizedAccessException:“對(duì)路徑“xxx”的訪問(wèn)被拒絕。這個(gè)我就很熟悉了,一般是因?yàn)闄?quán)限問(wèn)題,右鍵點(diǎn)開(kāi)授權(quán)文件的屬性一看,果然只讀被勾上了。 4、檢查了下一開(kāi)始生成的授權(quán)文件,只讀屬性是沒(méi)有勾選的,所以在本機(jī)調(diào)試沒(méi)問(wèn)題。那么問(wèn)題是出在發(fā)送和接收文件這塊。 5、我們發(fā)送授權(quán)文件時(shí)是直接用的微信,但前面說(shuō)到,測(cè)試時(shí)只是部分電腦出問(wèn)題,于是我問(wèn)了下同事的接收方法,有些是收到文件直接復(fù)制,有些是右鍵另存為,我自己測(cè)試了下,確實(shí)直接復(fù)制的會(huì)被改成只讀,到此真相大白。 6、另外,如果我們對(duì)文件只需要讀取,那么可以將上述拋異常的代碼改為: using (Stream stream = new FileStream(fullName, FileMode.Open, FileAccess.Read)) 就可以打開(kāi)只讀的文件,如果需要的是讀寫的權(quán)限,那么還是需要手動(dòng)將屬性中的只讀去掉勾選。 總結(jié):1、微信直接復(fù)制的文件是只讀的,可以使用另存為 2、對(duì)于只讀的文件,可以將訪問(wèn)模式設(shè)置為Read 本文來(lái)自博客園,作者:MaQaQ,轉(zhuǎn)載請(qǐng)注明原文鏈接:https://www.cnblogs.com/magicMaQaQ/p/17784037.html 本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文鏈接,否則保留追究法律責(zé)任的權(quán)利。 該文章在 2023/10/28 9:43:11 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |