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