我正在使用 c# 函数更改文件夹图标。它工作正常,但问题是它第一次工作。我的意思是我无法更改已更改图标的文件夹的图标。下面是代码:
static void Main(string[] args)
{
LPSHFOLDERCUSTOMSETTINGS FolderSettings = new LPSHFOLDERCUSTOMSETTINGS();
FolderSettings.dwMask = 0x10;
FolderSettings.pszIconFile = @"C:\Program Files (x86)\Common Files\TortoiseOverlays\icons\XPStyle\ModifiedIcon.ico";
FolderSettings.iIconIndex = 0;
UInt32 FCS_READ = 0x00000001;
UInt32 FCS_FORCEWRITE = 0x00000002;
UInt32 FCS_WRITE = FCS_READ | FCS_FORCEWRITE;
string pszPath = @"D:\Downloaded Data";
UInt32 HRESULT = SHGetSetFolderCustomSettings(ref FolderSettings, pszPath, FCS_WRITE);
//Console.WriteLine(HRESULT.ToString("x"));
//Console.ReadLine();
}
[DllImport("Shell32.dll", CharSet = CharSet.Auto)]
static extern UInt32 SHGetSetFolderCustomSettings(ref LPSHFOLDERCUSTOMSETTINGS pfcs, string pszPath, UInt32 dwReadWrite);
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
struct LPSHFOLDERCUSTOMSETTINGS
{
public UInt32 dwSize;
public UInt32 …
Run Code Online (Sandbox Code Playgroud) 我在godaddy共享主机上有一个Web应用程序.它是一个asp.net应用程序.一切正常,但是当我上传一些文件时,它会出现错误"拒绝访问路径'PATH'."
我尝试了几种方法,例如给予我从godaddy控制面板上传文件的文件夹的完全权限.
我也看过这篇文章并试图跟着他说:http://forums.asp.net/t/1052417.aspx/1
但没有帮助.
任何人都可以建议我那里有什么不对.它在IIS 7下.
我正在研究内存映射文件.有没有办法知道内存映射文件内容的长度?我想要的是附加现有的内存映射文件.它很容易在文件中附加字节,但我希望追加字符串.
我们可以检查CAPACITY属性,但它返回我认为的字节大小.
为了更清楚,我正在解释这个场景.我正在创建内存映射文件A.我在创建它时写"Hello".它工作正常.现在我想将"World"写入现有文件A.
我使用下面的代码:
var file = MemoryMappedFile.OpenExisting("myFile");
string str = "String to append";
using (var view = file.CreateViewAccessor())
{
using (var stream = file.CreateViewStream())
{
System.IO.BinaryWriter writer = new System.IO.BinaryWriter(stream);
writer.Write(str.ToArray(), INT SIZE,Convert.ToInt32(view.Capacity), str.Length);//Error
}
}
using (var stream = file.CreateViewStream())
{
Console.WriteLine("Reading appended File");
System.IO.BinaryReader reader = new System.IO.BinaryReader(stream);
Console.WriteLine(reader.ReadString());
Console.WriteLine(string.Empty);
}
Run Code Online (Sandbox Code Playgroud)
我用(//)标记了要求大小的行.我想知道(INT SIZE)的价值任何帮助将不胜感激.
[编辑]我正在使用C#,Visual Studio 2010.
现在我使用此代码追加:
var file = MemoryMappedFile.OpenExisting("myFile");
string str = "String to append";
string str1 = string.Empty;
using (var stream …
Run Code Online (Sandbox Code Playgroud) 请考虑以下代码.
bool somevariable;
bool.TryParse(Convert.ToString(Dataset.Tables[0].Rows[0]["SomeColumnName"]), out somevariable);
CheckBox.Checked = somevariable;
Run Code Online (Sandbox Code Playgroud)
在数据集中的"SomeColumnName"中,我的值为1.因此我假设这将在"somevariable"中将此1解析为TRUE.
但是当我尝试将此值解析为bool时,它总是返回false.
我不知道为什么.
可能的重复:
在 .NET 中指定 DllImport 的搜索路径
我有一个非托管的 DLL。为了清除,它是我想在我的 c# 代码中使用的 C++ dll。问题是它是一个 Windows 应用程序,用户可以将它安装在他们选择的任何目录中。所以我不能用静态路径引用它,也找不到给出相对路径的方法。这是我试过的代码:
[DllImport("mydll.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool SetDllDirectory(string lpPathName);
public void SetDllDirectory(string lpPathName)
{
try
{
bool r = SetDllDirectory(lpPathName);
}
catch (Exception ex)
{
throw ex;
}
}
public void SetDirectoryPath()
{
try
{
DirectoryInfo directory = new DirectoryInfo(System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath));
if (directory.Exists)
SetDllDirectory(directory.ToString() + "\\mydll.dll");
}
catch (Exception ex)
{
throw ex;
}
}
Run Code Online (Sandbox Code Playgroud)
下面是我收到的错误。
无法在 DLL“mydll.dll”中找到名为“SetDllDirectory”的入口点。
这个问题可能是复制品
我很想知道检查数据集中是否有记录的最佳方法.我一直在使用以下代码来检查数据集是否有某些记录.但我觉得有一些更好/最好的方法可以实现这一目标.
Dataset tableData = New Dataset();
if (_tableData.Tables.Count > 0 && _tableData.Tables[0].Rows.Count > 0)
{
}
Run Code Online (Sandbox Code Playgroud)
如果我感觉正确,请分享一些知识.
谢谢