たとえば、ファイルの属性は次のとおりです。ReadOnly, Hidden, Archived, System
。 属性を1つだけ削除するにはどうすればよいですか?私が使用している場合は、(例えば、読み取り専用のため)ファイルから単一の属性(ReadOnlyなど)を削除するにはどうすればよいですか?
:
Io.File.SetAttributes("File.txt",IO.FileAttributes.Normal)
それはすべての属性を削除します。
たとえば、ファイルの属性は次のとおりです。ReadOnly, Hidden, Archived, System
。 属性を1つだけ削除するにはどうすればよいですか?私が使用している場合は、(例えば、読み取り専用のため)ファイルから単一の属性(ReadOnlyなど)を削除するにはどうすればよいですか?
:
Io.File.SetAttributes("File.txt",IO.FileAttributes.Normal)
それはすべての属性を削除します。
:あなたが好きな任意の属性を削除することができ、この
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
// Create the file if it exists.
if (!File.Exists(path))
{
File.Create(path);
}
FileAttributes attributes = File.GetAttributes(path);
if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
// Make the file RW
attributes = RemoveAttribute(attributes, FileAttributes.ReadOnly);
File.SetAttributes(path, attributes);
Console.WriteLine("The {0} file is no longer RO.", path);
}
else
{
// Make the file RO
File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Hidden);
Console.WriteLine("The {0} file is now RO.", path);
}
}
private static FileAttributes RemoveAttribute(FileAttributes attributes, FileAttributes attributesToRemove)
{
return attributes & ~attributesToRemove;
}
}
Thxたくさん、それは私が必要としていたものの多くであった。D – Bjqn
ReadOnly
属性に関するタイトルにあなたの質問に答える:
FileInfo fileInfo = new FileInfo(pathToAFile);
fileInfo.IsReadOnly = false;
あなたがFile.SetAttributes()
メソッドを使用することができ、自分の属性の任意のコントロールを取得するには。このリンクにも例があります。 MSDNから
使用この(ちょうど読み取り専用のため、@のSLLの答えはちょうどその属性のためのより良いです):
private static FileAttributes RemoveAttribute(FileAttributes attributes, FileAttributes attributesToRemove)
詳細はこちらMSDN:http://msdn.microsoft.com/en-us/library/system.io.file.setattributes.aspx
ここで私はそれを行うだろうかされています
VB.Net
Shell("attrib file.txt -r")
負の符号はremove
を意味し、r
は読み取り専用です。あなたは同様に他の属性を削除したい場合は あなたはどうなる:読み取り専用、システム・ファイルを削除します
Shell("attrib file.txt -r -s -h -a")
は、隠しおよびアーカイブ属性。
あなたはこれらの属性をお返ししたい場合は、ここではどのようである:順序は重要ではありません
Shell("attrib file.txt +r +s +h +a")
。
C#
Process.Start("cmd.exe", "attrib file.txt +r +s +h +a");
参照
これらは主要なコンテンツ*変更ではなく、コンテンツの追加であり、どれもスタックオーバーフローの精神に反するものではありません。彼らは良い編集だ、彼らは滞在する必要があります。 –
これはあなたの車にオイルのクォートを加える場所を尋ねるのと同じようですが、あなたはオイル交換のためにあなたのディーラーにそれを持って行くべきだと言われています。なぜファイル属性ビットを反転するだけのシェルコマンドを実行するのですか?答えは技術的に機能するので、私はダウンボートしなかったが、私は心の中でやった。 – JMD
@GeorgeStockerレビューをお寄せいただき、ありがとうございます! – tehDorf
/// <summary>
/// Addes the given FileAttributes to the given File.
/// It's possible to combine FileAttributes: FileAttributes.Hidden | FileAttributes.ReadOnly
/// </summary>
public static void AttributesSet(this FileInfo pFile, FileAttributes pAttributes)
{
pFile.Attributes = pFile.Attributes | pAttributes;
pFile.Refresh();
}
/// <summary>
/// Removes the given FileAttributes from the given File.
/// It's possible to combine FileAttributes: FileAttributes.Hidden | FileAttributes.ReadOnly
/// </summary>
public static void AttributesRemove(this FileInfo pFile, FileAttributes pAttributes)
{
pFile.Attributes = pFile.Attributes & ~pAttributes;
pFile.Refresh();
}
/// <summary>
/// Checks the given File on the given Attributes.
/// It's possible to combine FileAttributes: FileAttributes.Hidden | FileAttributes.ReadOnly
/// </summary>
/// <returns>True if any Attribute is set, False if non is set</returns>
public static bool AttributesIsAnySet(this FileInfo pFile, FileAttributes pAttributes)
{
return ((pFile.Attributes & pAttributes) > 0);
}
/// <summary>
/// Checks the given File on the given Attributes.
/// It's possible to combine FileAttributes: FileAttributes.Hidden | FileAttributes.ReadOnly
/// </summary>
/// <returns>True if all Attributes are set, False if any is not set</returns>
public static bool AttributesIsSet(this FileInfo pFile, FileAttributes pAttributes)
{
return (pAttributes == (pFile.Attributes & pAttributes));
}
例:
private static void Test()
{
var lFileInfo = new FileInfo(@"C:\Neues Textdokument.txt");
lFileInfo.AttributesSet(FileAttributes.Hidden | FileAttributes.ReadOnly);
lFileInfo.AttributesSet(FileAttributes.Temporary);
var lBool1 = lFileInfo.AttributesIsSet(FileAttributes.Hidden);
var lBool2 = lFileInfo.AttributesIsSet(FileAttributes.Temporary);
var lBool3 = lFileInfo.AttributesIsSet(FileAttributes.Encrypted);
var lBool4 = lFileInfo.AttributesIsSet(FileAttributes.ReadOnly | FileAttributes.Temporary);
var lBool5 = lFileInfo.AttributesIsSet(FileAttributes.ReadOnly | FileAttributes.Encrypted);
var lBool6 = lFileInfo.AttributesIsAnySet(FileAttributes.ReadOnly | FileAttributes.Temporary);
var lBool7 = lFileInfo.AttributesIsAnySet(FileAttributes.ReadOnly | FileAttributes.Encrypted);
var lBool8 = lFileInfo.AttributesIsAnySet(FileAttributes.Encrypted);
lFileInfo.AttributesRemove(FileAttributes.Temporary);
lFileInfo.AttributesRemove(FileAttributes.Hidden | FileAttributes.ReadOnly);
}
if ((oFileInfo.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
oFileInfo.Attributes ^= FileAttributes.ReadOnly;
は、あなたが設定する必要が属性を隠し、現在の属性を読み取る属性... –