The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,682 other followers

Archive for November 26th, 2013

Subtle things on naming conventions (:

Posted by jpluimers on 2013/11/26

Sometimes a naming convention has been in place for quite a while, then new functionality breaks it.

One of the naming conventions in the JVCL is that all Delphi design-time packages follow the naming pattern *Design##.bpl

Until a package with run-time design functionality came along named (for Delphi XE3) as JvRuntimeDesign170.bpl. The actual design-time package for that is JvRuntimeDesignDesign170.bpl (:

I guess some of the reporting tools bumped into the same thing when they added run-time design support as well.

–jeroen

Posted in Delphi, Delphi XE3, Development, Software Development | 4 Comments »

.NET/C#: Getting volume free space from UNC path requires PInvoke of GetDiskFreeSpaceEx in Kernel32.dll

Posted by jpluimers on 2013/11/26

For some remote monitoring, I needed to get information on UNC paths.

Though suggested, you cannot do this using the System.IO.DriveInfo class (not through the constructor, nor through the VB.NET FileSystem way) as that is about drives, not UNC paths. The System.IO.DriveInfo constructor clearly indicates it doesn’t work with UNC paths. And if you still try, this is the error you will get:

System.ArgumentException was unhandled
HResult=-2147024809
Message=Object must be a root directory ("C:\") or a drive letter ("C").
Source=mscorlib
StackTrace:
at System.IO.DriveInfo..ctor(String driveName
)

Same for WMI: that only works when the UNC path has already been mapped to a drive letter.

You could do with adding a temporary drive letter but since there is nothing as permanent as a temporary

P/Invoke

The actual solution is based on calling Windows API functions using P/Invoke. Read the rest of this entry »

Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, CSV, Development, Missed Schedule, SocialMedia, Software Development, WordPress | Leave a Comment »

Optimize your Delphi installed disk size

Posted by jpluimers on 2013/11/26

Another instalment in the WordPress Missed Schedule series (:

Each version, Delphi gets more features, and grows bigger.

Especially in testing environments (where you want to have a cut-down base machine you can clone from), it is wise to cut down on the installation size.

A few directories you might want to consider compressing for your Delphi installation:

  • C:\Users\All Users\{*}
    The directories with GUID names contain the installer cache. You can ditch the whole installer cache if you keep ISO images of all installations. I prefer just to compress these directories.
    Compressing usually saves 50% of the storage there, which can count for 5+ gigabyte of savings for the newest Delphi version.
  • C:\Users\Public\Documents\RAD Studio
    Contains (among others) the help files and SVN examples, and (for the most recent version) the Platforms SDKs.
    Saving is usually a couple of 100 megabytes for less recent Delphi versions until about 1 gigabyte for the most recent.
  • C:\Program Files (x86)\Embarcadero\RAD Studio\#.0\lib
    This contains all the precompiled files. Since they are readonly in nature, it pays of compressing them, usually saving 50% or more.
    Saves 5+ gigabytes for the most recent Delphi version.

–jeroen

Posted in Delphi, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Missed Schedule, SocialMedia, Software Development, WordPress | Leave a Comment »

 
%d bloggers like this: