การดำเนินการกับไฟล์
ผู้ใช้แพลตฟอร์มแสดงความกังวลที่มีเหตุผลเกี่ยวกับการเปิดใช้งาน cBot และอินดิเคเตอร์ด้วย AccessRights.FullAccess โดยเฉพาะอย่างยิ่งเมื่อไม่มีซอร์สโค้ดให้ใช้งาน จึงยากที่จะทราบแน่ชัดว่าอัลกอริทึมจะทำการเปลี่ยนแปลงอะไรกับระบบไฟล์ ในคู่มือสิทธิ์การเข้าถึง เราได้แนะนำไปแล้วว่า cBot และอินดิเคเตอร์ที่คุณแบ่งปันกับผู้อื่นควรได้รับ AccessRights.None
คู่มือ API นี้อธิบายวิธีที่อัลกอริทึมที่มีสิทธิ์ AccessRights จำกัดสามารถดำเนินการกับไฟล์ในเครื่องได้อย่างปลอดภัย
การดำเนินการกับไฟล์ในหนึ่งนาที!
- ฟีเจอร์การดำเนินการกับไฟล์อนุญาตให้อัลกอริทึมที่มีสิทธิ์การเข้าถึงจำกัดทำงานกับไฟล์และโฟลเดอร์ได้เฉพาะภายในโฟลเดอร์ที่กำหนดเท่านั้น
- ชื่อโฟลเดอร์จะตรงกับชื่อของ cBot หรืออินดิเคเตอร์
- ไดเรกทอรีอื่นๆ ทั้งหมดของระบบไฟล์ของผู้ใช้ยังคงได้รับการปกป้องอย่างปลอดภัยจากการเข้าถึงที่ไม่ได้รับอนุญาต
- ใน API ฟีเจอร์การดำเนินการกับไฟล์รองรับเฉพาะอัลกอริทึม .NET 6.0 เท่านั้น
กฎของการดำเนินการกับไฟล์
อัลกอริทึมใดๆ ที่มีสิทธิ์การเข้าถึงจำกัดได้รับอนุญาตให้ดำเนินการกับไฟล์ได้เฉพาะในโฟลเดอร์ที่กำหนดของระบบไฟล์ของผู้ใช้เท่านั้น อัลกอริทึมแต่ละประเภทจะมีโฟลเดอร์ของตัวเองตามที่แสดงด้านล่าง (เช่น cBot และอินดิเคเตอร์) โดยจะสร้างโฟลเดอร์แยกสำหรับชื่ออัลกอริทึมแต่ละชื่อ
Documents
|-cAlgo
|-Data
|-cBots
|-${cBot Name}
|-Indicators
|-${Indicator Name}
หมายเหตุ
ฟีเจอร์การดำเนินการกับไฟล์มีให้ใช้งานสำหรับอัลกอริทึม .NET 6.0 เท่านั้น
กฎต่อไปนี้กำหนดวิธีการทำงานของฟีเจอร์การดำเนินการกับไฟล์ใน API:
1. อัลกอริทึมแต่ละตัวสามารถเข้าถึงได้เฉพาะโฟลเดอร์ที่ตรงกับชื่อของมันเท่านั้น (รวมถึงโฟลเดอร์ย่อย ถ้ามี)
2. หากไม่มีโฟลเดอร์ที่ตรงกัน โฟลเดอร์ดังกล่าวจะถูกสร้างขึ้นในระบบไฟล์ตามแผนผังด้านบนเมื่อมีการเปิดใช้งานอินสแตนซ์ครั้งแรก
3. หากไม่สามารถสร้างโฟลเดอร์ใหม่ได้ cBot หรืออินดิเคเตอร์จะไม่เริ่มทำงาน และจะมีการรายงานข้อผิดพลาด
4. ในโค้ดของอัลกอริทึม คุณไม่จำเป็นต้องระบุเส้นทางเต็มไปยังโฟลเดอร์ที่เกี่ยวข้อง แทนที่จะเป็นเช่นนั้น อัลกอริทึมจะใช้เส้นทางสัมพัทธ์
5. เนมสเปซ System.IO มีคลาสต่างๆ มากมาย (File, FileInfo, Directory DirectoryInfo, Path, ฯลฯ) ซึ่งสามารถเรียกใช้เมธอดที่เกี่ยวข้องเพื่อดำเนินการกับไฟล์และโฟลเดอร์ได้
ด้านล่างนี้คือตัวอย่างบางส่วนของเมธอดที่รวมอยู่ในคลาส File และ Directory
| เมธอด | คำอธิบาย |
|---|---|
File.Create() | สร้างหรือเขียนทับไฟล์ในไดเรกทอรีที่กำหนด |
File.WriteAllText() | สร้างไฟล์ใหม่ เขียนสตริงที่ระบุลงในไฟล์ และปิดไฟล์ |
File.Copy() | คัดลอกไฟล์ที่มีอยู่ไปยังไฟล์ใหม่ ไม่อนุญาตให้เขียนทับไฟล์ที่มีชื่อเดียวกัน |
File.Delete() | ลบไฟล์ในไดเรกทอรีที่กำหนด |
Directory.CreateDirectory() | สร้างโฟลเดอร์หรือโฟลเดอร์ย่อย |
Directory.Delete() | ลบโฟลเดอร์หรือโฟลเดอร์ย่อย |
Directory.Exists() | ตรวจสอบว่าไดเรกทอรีที่ระบุมีอยู่หรือไม่ |
Directory.Move() | ย้ายไดเรกทอรีที่มีอยู่ไปยังไดเรกทอรีใหม่ที่ระบุ |
กรณีการใช้งาน
เมื่อเรียกใช้ เมธอด TakeChartshot() ไม่จำเป็นต้องระบุพาธเต็มของไดเรกทอรีที่จะบันทึกหลังจาก File.WriteAllBytes เนื่องจากลักษณะของการดำเนินการไฟล์ ภาพหน้าจอแผนภูมิจะถูกบันทึกในไดเรกทอรีที่เกี่ยวข้องกับอัลกอริทึม แม้ว่าจะมี AccessRights.None ก็ตาม
ตัวอย่างการสร้าง cBot
ตัวอย่าง cBot ด้านล่างมี AccessRights.None แต่มันสร้างไฟล์ข้อความในโฟลเดอร์ที่เกี่ยวข้องชื่อ "File Access Test" ทันทีหลังจากการเริ่มต้น หากมีการวางคำสั่ง Market ที่สำเร็จใน OnStart() cBot จะเขียน ID ของโพสิชันลงในไฟล์ที่สร้างขึ้น
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | |
สรุป
ฟีเจอร์การดำเนินการกับไฟล์ใน API ยังคงช่วยให้อัลกอริทึมที่มีสิทธิ์การเข้าถึงจำกัดสามารถทำงานกับไฟล์และโฟลเดอร์ในเครื่องได้ คุณสามารถใช้เมธอดจากเนมสเปซ System.IO ของ C# เพื่อเขียนโปรแกรมว่าอัลกอริทึมจะดำเนินการดังกล่าวภายในขอบเขตของโฟลเดอร์ที่เกี่ยวข้องอย่างไร ดังนั้น ไดเรกทอรีอื่นๆ ในระบบไฟล์ของผู้ใช้จึงยังคงได้รับการปกป้องอย่างเต็มที่แม้ว่าซอร์สโค้ดของอัลกอริทึมจะไม่สามารถใช้งานได้

