คำถามติดแท็ก file-locking

18
มีวิธีการตรวจสอบว่าไฟล์มีการใช้งานหรือไม่?
ฉันกำลังเขียนโปรแกรมใน C # ที่จำเป็นต้องเข้าถึงไฟล์ภาพ 1 ไฟล์ซ้ำ ๆ เวลาส่วนใหญ่ของการทำงาน แต่หากคอมพิวเตอร์ของฉันทำงานได้อย่างรวดเร็วก็จะพยายามที่จะเข้าถึงไฟล์ก่อนที่มันจะได้รับการบันทึกกลับไปที่ระบบแฟ้มและโยนข้อผิดพลาด: "แฟ้มในการใช้งานโดยกระบวนการอื่น" ฉันต้องการหาวิธีแก้ไขปัญหานี้ แต่ Googling ทั้งหมดของฉันให้ผลการตรวจสอบโดยใช้ข้อยกเว้นเท่านั้น นี่เป็นสิ่งที่ขัดกับศาสนาของฉันดังนั้นฉันจึงสงสัยว่าใครมีวิธีที่ดีกว่าในการทำมัน?
846 c#  .net  file  file-io  file-locking 

6
ฉันจะทราบได้อย่างไรว่ากระบวนการใดที่ล็อกไฟล์โดยใช้. NET
ฉันเห็นคำตอบหลายข้อเกี่ยวกับการใช้การจัดการหรือการตรวจสอบกระบวนการแต่ฉันต้องการที่จะค้นหาในรหัสของตัวเอง (C #) ซึ่งกระบวนการจะล็อคไฟล์ ฉันมีความรู้สึกที่น่ารังเกียจว่าฉันจะต้องทำสิ่งต่าง ๆ ใน win32 API แต่ถ้าใครทำสิ่งนี้ไปแล้วและสามารถนำฉันไปสู่เส้นทางที่ถูกต้องฉันจะขอบคุณความช่วยเหลือจริงๆ ปรับปรุง ลิงก์ไปยังคำถามที่คล้ายกัน วิธีการหนึ่งที่จะคิดออกว่ากระบวนการล็อคไฟล์โดยใช้ c #? เครื่องมือบรรทัดคำสั่ง ข้ามเครือข่าย กำลังล็อคอุปกรณ์ USB การทดสอบหน่วยล้มเหลวด้วยไฟล์ที่ถูกล็อค การลบไฟล์ที่ถูกล็อค
154 c#  file-locking 

13
การล็อคไฟล์ใน Python
ฉันต้องล็อคไฟล์เพื่อเขียนเป็น Python มันจะสามารถเข้าถึงได้จากกระบวนการ Python หลายรายการพร้อมกัน ฉันพบวิธีแก้ไขปัญหาบางอย่างทางออนไลน์ แต่ส่วนใหญ่ล้มเหลวสำหรับวัตถุประสงค์ของฉันเนื่องจากมักใช้กับ Unix based หรือ Windows เท่านั้น

1
Notepad เต้นได้ทั้งหมด?
ในระบบ Windows Server 2012 R2 โปรแกรม Kotlin ใช้FileChannel.tryLock()เพื่อล็อคไฟล์แบบเอกสิทธิ์เฉพาะบุคคลเช่นนี้: val fileRw = RandomAccessFile(file, "rw") fileRw.channel.tryLock() ด้วยการล็อคนี้ฉันไม่สามารถเปิดไฟล์ด้วย: WordPad Notepad ++ โดยใช้โปรแกรม C # สำหรับค่าใด ๆFileShare: using (var fileStream = new FileStream(processIdPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var textReader = new StreamReader(fileStream)) { textReader.ReadToEnd(); } จากบรรทัดtypeคำสั่งคำสั่ง: C:\some-directory>type file.txt The process cannot access the file …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.