none
プログラム実行中はCSVファイルを閲覧出来なくする方法 RRS feed

  • 質問

  • visual basic 2013でWindows desktopアプリを作成しています。

    作成しているアプリにてとあるデータを保存したCSVファイルの生成を行っております。

    このデータはプログラム終了時に変化する仕様にしている為、プログラム終了後に初めてCSVファイルを閲覧出来るようにしたいと考えております。

     

    このような制約をする事は可能なのでしょうか?

    可能であればどのように行えばよいかご教授頂ければと思います。

    回答お待ちしております。

    2015年4月13日 1:59

回答

すべての返信

  • どうやってファイルを開いているのか分かりませんが、New FileStreamするときにFileShare.Noneを渡せば他のプロセスは開くことができなくなります。
    2015年4月13日 2:08
  • CSVファイルはどのような方法、クラスライブラリを使用して行っているのでしょうか?

    一般的なファイルアクセスを行うにはFileStreamクラスを用いますが、そのコンストラクターにはFileShare引数を伴うものがあります。この引数によりFileStreamをクローズするまでの間、アクセスを拒否することもできます。

    2015年4月13日 2:10
  •  Honglianさん

    佐祐理さん

     

    回答ありがとうございます。説明不足で申し訳ありません。

    現在のコードを抜粋して表記いたします。

        

    Private Sub test_csv() Dim i As Integer         Dim j As Integer

    Try FileOpen(1, "test.csv", OpenMode.Output) For i = 0 To 3 For j = 0 To data.Length - 1 Write(1, data(j)) Next j WriteLine(1, "") Next FileClose(1) Catch ex As Exception FileClose(1) End Try End Sub



    2015年4月13日 4:12
  • FileOpen 関数

    でも、FileShareを渡せるようですね。

    2015年4月13日 4:22
  • FileOpen 関数にも共有に関する指定を行う引数は存在します。

    # FileOpen関数はVisual Basic固有のものであり、.NET Framework 全般は不適切です


    2015年4月13日 4:22
  • しっかりFileOpen関数の説明にのっていたのですね・・・

    申し訳ありません。調査不足でした。

    回答ありがとうございました。

    2015年4月13日 4:32