Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 23060|Odgovoriti: 1

[Vir] .NET/C# večnitna rešitev datotek samo za branje

[Kopiraj povezavo]
Objavljeno na 11. 10. 2017 15:06:48 | | | |
Neobdelana izjema: System.AggregateException: Prišlo je do ene ali več napak. ---> System.IO.IOException: Datoteko "C:\SyncTemp\Position\Taxi\2017\09\09\Time\0000.dat" uporablja drug proces, zato do te datoteke ni dostopa.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   V System.IO.FileStream.Init(Pot nizov, način FileMode, dostop do datotek, pravice Int32, Boolean useRights, FileShare share, Int32 bufferSize, možnosti FileOptions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   V System.IO.FileStream: ctor(pot do nizov, način FileMode, dostop do datotek, deljenje datotek)
   V System.IO.File.Open(pot do nizov, način FileMode, dostop do datotek)
   At ConsoleApp1.FileReadHelper.SingleFile(String path) lokacija C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: vrstica številka 27
   V ConsoleApp1.FileReadHelper.<>c__DisplayClass3_0. <MultipleFilesAsync>b__0(String x) Pozicija C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: Vrstica številka 68
   V System.Threading.Tasks.Parallel.<>c__DisplayClass17_0'1. <ForWorker>b__1()
   In System.Threading.Tasks.Task.InnerInvokeWithArg(Child Task)
   V System.Threading.Tasks.Task.<>c__DisplayClass176_0. <ExecuteSelfReplicating>b__0(Predmet)
   --- Konec notranjega sledenja sklada izjem ---
   V System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   V System.Threading.Tasks.Task.Wait(Int32 milisekundTimeout, CancellationToken cancellationToken)
   In System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action'1 body, Action'2 bodyWithState, Func'4 bodyWithLocal, Func'1 localInit, Action'1 localFinally)
   V System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable'1 izvor, ParallelOptions, Action'1 body, Action'2 bodyWithState, Action'3 bodyWithStateAndIndex, Func'4 bodyWithStateAndLocal, Func'5 bodyWithEverything, Func'1 localInit, Action'1 localTFinally)
   at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable'1 source, Action'1 body)
   In ConsoleApp1.FileReadHelper.MultipleFilesAsync(IEnumerable'1 path) na lokaciji C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: vrstica številka 66
   At ConsoleApp1.Program.Main(String[] args) pozicija C:\project\my\TestNet\ConsoleApp1\Program.cs: vrstica številka 73
Prosimo, pritisnite katerokoli tipko za nadaljevanje...




Napaka je očitna, torej datoteka ni dostopna, datoteke ni mogoče prebrati, kar je izjema pod večnitnostjo

Prebral sem, kako je dokument napisan:

Nastavil sem samo način branja, ne pa pisanja, in ugotovil, da se pri večnitnosti še vedno pojavi napaka, ali ni samo za branje?

Če je samo za branje, ne bi smela biti napaka

Rešitev:



To bi moralo biti branje datotek v načinu samo za branje, testiral sem in ugotovil, da ni napaka, ter da se ista datoteka lahko bere hkrati pod več nitmi




Prejšnji:Enoklikni vodič za ponovno namestitev En klik vodič za ponovno namestitev sistemskega asistenta
Naslednji:.NET/C# Operacija branja datoteke za branje vseh vrstic datoteke v serijah
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com